diff options
67 files changed, 694 insertions, 580 deletions
diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaAttachmentHandler.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaAttachmentHandler.java index 56b9d522f..bb856c781 100644 --- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaAttachmentHandler.java +++ b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaAttachmentHandler.java @@ -86,7 +86,7 @@ public class BugzillaAttachmentHandler implements IAttachmentHandler { public void uploadAttachment(TaskRepository repository, AbstractRepositoryTask task, String comment, String description, File file, String contentType, boolean isPatch) throws CoreException { try { - String bugId = AbstractRepositoryTask.getTaskId(task.getHandleIdentifier()); + String bugId = task.getTaskId(); BugzillaClient client = connector.getClientManager().getClient(repository); client.postAttachment(bugId, comment, description, file, contentType, isPatch); } catch (IOException e) { diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaRepositoryConnector.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaRepositoryConnector.java index 363d0a502..79df1967f 100644 --- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaRepositoryConnector.java +++ b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaRepositoryConnector.java @@ -113,14 +113,14 @@ public class BugzillaRepositoryConnector extends AbstractRepositoryConnector { return null; } - String handle = AbstractRepositoryTask.getHandle(repository.getUrl(), bugId); - ITask task = taskList.getTask(handle); +// String handle = AbstractRepositoryTask.getHandle(); + ITask task = taskList.getTask(repository.getUrl(), id); AbstractRepositoryTask repositoryTask = null; if (task == null) { RepositoryTaskData taskData = null; taskData = taskDataHandler.getTaskData(repository, id); if (taskData != null) { - repositoryTask = new BugzillaTask(handle, taskData.getId() + ": " + taskData.getDescription(), true); + repositoryTask = new BugzillaTask(repository.getUrl(), ""+bugId, taskData.getId() + ": " + taskData.getDescription(), true); repositoryTask.setTaskData(taskData); taskList.addTask(repositoryTask); } @@ -156,9 +156,8 @@ public class BugzillaRepositoryConnector extends AbstractRepositoryConnector { Iterator<AbstractRepositoryTask> itr = tasks.iterator(); while (itr.hasNext()) { queryCounter++; - ITask task = itr.next(); - String newurlQueryString = URLEncoder.encode(AbstractRepositoryTask.getTaskId(task - .getHandleIdentifier()) + AbstractRepositoryTask task = itr.next(); + String newurlQueryString = URLEncoder.encode(task.getTaskId() + ",", repository.getCharacterEncoding()); if ((urlQueryString.length() + newurlQueryString.length() + IBugzillaConstants.CONTENT_TYPE_RDF .length()) > MAX_URL_LENGTH) { @@ -190,8 +189,8 @@ public class BugzillaRepositoryConnector extends AbstractRepositoryConnector { performQuery(query, repository, new NullProgressMonitor(), collector); for (AbstractQueryHit hit : collector.getHits()) { - String handle = AbstractRepositoryTask.getHandle(repository.getUrl(), hit.getId()); - ITask correspondingTask = taskList.getTask(handle); +// String handle = AbstractRepositoryTask.getHandle(repository.getUrl(), hit.getId()); + ITask correspondingTask = taskList.getTask(repository.getUrl(), hit.getId()); if (correspondingTask != null && correspondingTask instanceof AbstractRepositoryTask) { AbstractRepositoryTask repositoryTask = (AbstractRepositoryTask) correspondingTask; // Hack to avoid re-syncing last task from previous @@ -204,8 +203,8 @@ public class BugzillaRepositoryConnector extends AbstractRepositoryConnector { // currently it doesn't return a proper modified date string) if (repositoryTask.getTaskData() != null && repositoryTask.getTaskData().getLastModified().equals(repository.getSyncTimeStamp())) { - String taskId = AbstractRepositoryTask.getTaskId(repositoryTask.getHandleIdentifier()); - RepositoryTaskData taskData = getTaskDataHandler().getTaskData(repository, taskId); +// String taskId = RepositoryTaskHandleUtil.getTaskId(repositoryTask.getHandleIdentifier()); + RepositoryTaskData taskData = getTaskDataHandler().getTaskData(repository, repositoryTask.getTaskId()); if (taskData != null && taskData.getLastModified().equals(repository.getSyncTimeStamp())) { continue; } diff --git a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaTask.java b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaTask.java index 9bf47ba76..c0bc142de 100644 --- a/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaTask.java +++ b/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/BugzillaTask.java @@ -31,28 +31,28 @@ public class BugzillaTask extends AbstractRepositoryTask { private static SimpleDateFormat comment_creation_ts_format = new SimpleDateFormat(COMMENT_FORMAT); - public BugzillaTask(String handle, String label, boolean newTask) { - super(handle, label, newTask); + public BugzillaTask(String repositoryUrl, String id, String label, boolean newTask) { + super(repositoryUrl, id, label, newTask); if (newTask) { setSyncState(RepositoryTaskSyncState.INCOMING); } isDirty = false; - initFromHandle(); + initTaskUrl(taskId); } public BugzillaTask(BugzillaQueryHit hit, boolean newTask) { - this(hit.getHandleIdentifier(), hit.getSummary(), newTask); + this(hit.getRepositoryUrl(), hit.getId(), hit.getSummary(), newTask); setPriority(hit.getPriority()); - initFromHandle(); + initTaskUrl(taskId); } - private void initFromHandle() { - String id = AbstractRepositoryTask.getTaskId(getHandleIdentifier()); - String repositoryUrl = getRepositoryUrl(); + private void initTaskUrl(String taskId) { +// String id = RepositoryTaskHandleUtil.getTaskId(getHandleIdentifier()); +// String repositoryUrl = getRepositoryUrl(); try { - String url = BugzillaClient.getBugUrlWithoutLogin(repositoryUrl, Integer.parseInt(id)); + String url = BugzillaClient.getBugUrlWithoutLogin(repositoryUrl, Integer.parseInt(taskId)); if (url != null) { - super.setUrl(url); + super.setTaskUrl(url); } } catch (Exception e) { MylarStatusHandler.fail(e, "Task initialization failed due to malformed id or URL: " @@ -89,17 +89,19 @@ public class BugzillaTask extends AbstractRepositoryTask { return "bugzilla report id: " + getHandleIdentifier(); } - @Override - public String getUrl() { - // fix for bug 103537 - should login automatically, but dont want to - // show the login info in the query string - try { - return BugzillaClient.getBugUrlWithoutLogin(getRepositoryUrl(), Integer - .parseInt(AbstractRepositoryTask.getTaskId(handleIdentifier))); - } catch (NumberFormatException nfe) { - return super.getUrl(); - } - } +// @Override +// public String getUrl() { +// // fix for bug 103537 - should login automatically, but dont want to +// // show the login info in the query string +// try { +//// return BugzillaClient.getBugUrlWithoutLogin(getRepositoryUrl(), Integer +//// .parseInt(RepositoryTaskHandleUtil.getTaskId(handleIdentifier))); +// return BugzillaClient.getBugUrlWithoutLogin(getRepositoryUrl(), Integer +// .parseInt(RepositoryTaskHandleUtil.)); +// } catch (NumberFormatException nfe) { +// return super.getUrl(); +// } +// } @Override public boolean isCompleted() { diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaRepositoryConnectorTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaRepositoryConnectorTest.java index cf86f12dd..7916d198c 100644 --- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaRepositoryConnectorTest.java +++ b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaRepositoryConnectorTest.java @@ -36,6 +36,7 @@ import org.eclipse.mylar.internal.bugzilla.core.BugzillaRepositoryQuery; import org.eclipse.mylar.internal.bugzilla.core.BugzillaTask; import org.eclipse.mylar.internal.bugzilla.core.IBugzillaConstants; import org.eclipse.mylar.internal.bugzilla.core.RepositoryConfiguration; +import org.eclipse.mylar.internal.tasks.core.RepositoryTaskHandleUtil; import org.eclipse.mylar.tasks.core.AbstractQueryHit; import org.eclipse.mylar.tasks.core.AbstractRepositoryTask; import org.eclipse.mylar.tasks.core.ITask; @@ -157,7 +158,7 @@ public class BugzillaRepositoryConnectorTest extends AbstractBugzillaTest { // BugEditor) task.getTaskData().setHasLocalChanges(true); task.setSyncState(RepositoryTaskSyncState.OUTGOING); - TasksUiPlugin.getDefault().getTaskDataManager().push(task.getTaskData()); + TasksUiPlugin.getDefault().getTaskDataManager().push(task.getHandleIdentifier(), task.getTaskData()); assertEquals(RepositoryTaskSyncState.OUTGOING, task.getSyncState()); // Submit changes @@ -178,7 +179,7 @@ public class BugzillaRepositoryConnectorTest extends AbstractBugzillaTest { RepositoryTaskData bugReport = task.getTaskData(); // repository.setSyncTimeStamp(bugReport.getLastModified()); // task.setTaskData(null); - TasksUiPlugin.getDefault().getTaskDataManager().remove(bugReport); + TasksUiPlugin.getDefault().getTaskDataManager().remove(task.getHandleIdentifier()); TasksUiPlugin.getSynchronizationManager().synchronize(connector, task, false, null); assertEquals(RepositoryTaskSyncState.SYNCHRONIZED, task.getSyncState()); assertNotNull(task.getTaskData()); @@ -382,8 +383,9 @@ public class BugzillaRepositoryConnectorTest extends AbstractBugzillaTest { Set<AbstractRepositoryTask> tasks = new HashSet<AbstractRepositoryTask>(); tasks.add(task4); tasks.add(task5); - - // Precondition for test passing is that task5's modification data is AFTER + + // Precondition for test passing is that task5's modification data is + // AFTER // task4's TasksUiPlugin.getRepositoryManager().setSyncTime(repository, task5.getLastSyncDateStamp(), @@ -454,13 +456,13 @@ public class BugzillaRepositoryConnectorTest extends AbstractBugzillaTest { TasksUiPlugin.getRepositoryManager().setSyncTime(repository, task7.getLastSyncDateStamp(), TasksUiPlugin.getDefault().getRepositoriesFilePath()); - assertNotNull(TasksUiPlugin.getDefault().getTaskDataManager().getRepsitoryTaskData( - IBugzillaConstants.TEST_BUGZILLA_222_URL, "7")); - ArrayList<RepositoryTaskData> taskDataList = new ArrayList<RepositoryTaskData>(); - taskDataList.add(task7.getTaskData()); + assertNotNull(TasksUiPlugin.getDefault().getTaskDataManager().getRepositoryTaskData( + RepositoryTaskHandleUtil.getHandle(IBugzillaConstants.TEST_BUGZILLA_222_URL, "7"))); + ArrayList<String> taskDataList = new ArrayList<String>(); + taskDataList.add(task7.getHandleIdentifier()); TasksUiPlugin.getDefault().getTaskDataManager().remove(taskDataList); - assertNull(TasksUiPlugin.getDefault().getTaskDataManager().getRepsitoryTaskData( - IBugzillaConstants.TEST_BUGZILLA_222_URL, "7")); + assertNull(TasksUiPlugin.getDefault().getTaskDataManager().getRepositoryTaskData( + RepositoryTaskHandleUtil.getHandle(IBugzillaConstants.TEST_BUGZILLA_222_URL, "7"))); assertEquals(RepositoryTaskSyncState.SYNCHRONIZED, task7.getSyncState()); assertNotNull(task7.getLastSyncDateStamp()); diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskListManagerTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskListManagerTest.java index dc6bf4750..9f6b3bd9f 100644 --- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskListManagerTest.java +++ b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskListManagerTest.java @@ -69,7 +69,7 @@ public class BugzillaTaskListManagerTest extends TestCase { String bugNumber = "106939"; - BugzillaTask task1 = new BugzillaTask(repositoryUrl + "-" + bugNumber, "label", false); + BugzillaTask task1 = new BugzillaTask(repositoryUrl, bugNumber, "label", false); manager.getTaskList().addTask(task1); task1.setReminded(true); @@ -89,7 +89,7 @@ public class BugzillaTaskListManagerTest extends TestCase { } public void testRepositoryTaskExternalization() { - BugzillaTask repositoryTask = new BugzillaTask("bug-1", "label", true); + BugzillaTask repositoryTask = new BugzillaTask("repo", "1", "label", true); repositoryTask.setKind("kind"); manager.getTaskList().moveToRoot(repositoryTask); manager.saveTaskList(); diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskTest.java index 86aedea37..1e1f1901a 100644 --- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskTest.java +++ b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaTaskTest.java @@ -49,7 +49,7 @@ public class BugzillaTaskTest extends TestCase { } public void testCompletionDate() throws Exception { - BugzillaTask task = new BugzillaTask("bug-1", "description", true); + BugzillaTask task = new BugzillaTask("repo", "1", "description", true); RepositoryTaskData report = new RepositoryTaskData(new BugzillaAttributeFactory(), BugzillaCorePlugin.REPOSITORY_KIND, IBugzillaConstants.ECLIPSE_BUGZILLA_URL, "1"); task.setTaskData(report); diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/RepositoryTaskHandleTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/RepositoryTaskHandleTest.java index 94b9522f5..2757fc60c 100644 --- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/RepositoryTaskHandleTest.java +++ b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/RepositoryTaskHandleTest.java @@ -12,7 +12,7 @@ import junit.framework.TestCase; import org.eclipse.mylar.internal.bugzilla.core.BugzillaTask; import org.eclipse.mylar.internal.bugzilla.core.IBugzillaConstants; -import org.eclipse.mylar.tasks.core.AbstractRepositoryTask; +import org.eclipse.mylar.internal.tasks.core.RepositoryTaskHandleUtil; import org.eclipse.mylar.tasks.ui.TaskListManager; import org.eclipse.mylar.tasks.ui.TasksUiPlugin; @@ -39,10 +39,10 @@ public class RepositoryTaskHandleTest extends TestCase { public void testInvalidHandle() { // MockRepositoryTask task = new MockRepositoryTask() String url = "http://foo"; - assertEquals(url + "-" + "abc", AbstractRepositoryTask.getHandle(url, "abc")); + assertEquals(url + "-" + "abc", RepositoryTaskHandleUtil.getHandle(url, "abc")); Exception caught = null; try { - AbstractRepositoryTask.getHandle(url, "a-23"); + RepositoryTaskHandleUtil.getHandle(url, "a-23"); } catch (Exception e) { caught = e; } @@ -53,8 +53,8 @@ public class RepositoryTaskHandleTest extends TestCase { String repository = IBugzillaConstants.ECLIPSE_BUGZILLA_URL; String id = "123"; - String handle = AbstractRepositoryTask.getHandle(repository, id); - BugzillaTask bugTask = new BugzillaTask(handle, "label 124", true); +// String handle = AbstractRepositoryTask.getHandle(repository, id); + BugzillaTask bugTask = new BugzillaTask(repository, id, "label 124", true); assertEquals(repository, bugTask.getRepositoryUrl()); manager.getTaskList().moveToRoot(bugTask); diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/TaskListNotificationManagerTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/TaskListNotificationManagerTest.java index ef014ad4d..b7fd0521e 100644 --- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/TaskListNotificationManagerTest.java +++ b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/TaskListNotificationManagerTest.java @@ -79,7 +79,7 @@ public class TaskListNotificationManagerTest extends TestCase { TaskRepository repository = new TaskRepository("bugzilla", "https://bugs.eclipse.org/bugs"); TasksUiPlugin.getRepositoryManager().addRepository(repository, TasksUiPlugin.getDefault().getRepositoriesFilePath()); - AbstractRepositoryTask task = new BugzillaTask("https://bugs.eclipse.org/bugs-142891", "label", true); + AbstractRepositoryTask task = new BugzillaTask("https://bugs.eclipse.org/bugs", "142891", "label", true); assertTrue(task.getSyncState() == RepositoryTaskSyncState.INCOMING); assertTrue(task.isNotified()); task.setNotified(false); diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/TaskListStandaloneTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/TaskListStandaloneTest.java index 3148c69ff..d2af1a72d 100644 --- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/TaskListStandaloneTest.java +++ b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/TaskListStandaloneTest.java @@ -114,7 +114,7 @@ public class TaskListStandaloneTest extends TestCase { externalizers.add(new BugzillaTaskExternalizer()); // make some tasks // save them - BugzillaTask task = new BugzillaTask("http://bugs-1", "1", true); + BugzillaTask task = new BugzillaTask("http://bugs", "1", "1", true); manager.getTaskList().addTask(task); manager.saveTaskList(); diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/TaskReportGeneratorTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/TaskReportGeneratorTest.java index 6deb9b3e8..8b5ca8ecc 100644 --- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/TaskReportGeneratorTest.java +++ b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/TaskReportGeneratorTest.java @@ -93,7 +93,7 @@ public class TaskReportGeneratorTest extends TestCase { } public void testCompletedBugzillaTasksRetrieved() throws InvocationTargetException, InterruptedException { - BugzillaTask task1 = new BugzillaTask(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), + BugzillaTask task1 = new BugzillaTask("repo", "1", "bugzillatask 1", true); manager.getTaskList().moveToRoot(task1); @@ -133,7 +133,7 @@ public class TaskReportGeneratorTest extends TestCase { } public void testCompletedBugzillaTasksInCategoryRetrieved() throws InvocationTargetException, InterruptedException { - BugzillaTask task1 = new BugzillaTask(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "task 1", + BugzillaTask task1 = new BugzillaTask("repo", "1", "task 1", true); manager.getTaskList().moveToRoot(task1); BugzillaTestUtil.setBugTaskCompleted(task1, true); @@ -157,7 +157,7 @@ public class TaskReportGeneratorTest extends TestCase { } public void testCompletedBugzillaTasksInQueryRetrieved() throws InvocationTargetException, InterruptedException { - BugzillaTask task1 = new BugzillaTask(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "task 1", + BugzillaTask task1 = new BugzillaTask("repo", "1", "task 1", true); manager.getTaskList().moveToRoot(task1); BugzillaTestUtil.setBugTaskCompleted(task1, false); diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaTaskEditor.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaTaskEditor.java index ec1265c3b..5dbaa5ef2 100644 --- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaTaskEditor.java +++ b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/BugzillaTaskEditor.java @@ -26,7 +26,6 @@ import org.eclipse.mylar.internal.bugzilla.core.BugzillaCorePlugin; import org.eclipse.mylar.internal.bugzilla.core.BugzillaReportElement; import org.eclipse.mylar.internal.bugzilla.core.IBugzillaConstants; import org.eclipse.mylar.internal.tasks.ui.TaskListColorsAndFonts; -import org.eclipse.mylar.tasks.core.AbstractRepositoryTask; import org.eclipse.mylar.tasks.core.ITask; import org.eclipse.mylar.tasks.core.RepositoryTaskAttribute; import org.eclipse.mylar.tasks.core.TaskComment; @@ -284,8 +283,7 @@ public class BugzillaTaskEditor extends AbstractRepositoryTaskEditor { for (String bugNumber : values.split(",")) { final String bugId = bugNumber.trim(); Hyperlink hyperlink = toolkit.createHyperlink(hyperlinksComposite, bugId, SWT.NONE); - final ITask task = TasksUiPlugin.getTaskListManager().getTaskList().getTask( - AbstractRepositoryTask.getHandle(repository.getUrl(), bugId)); + final ITask task = TasksUiPlugin.getTaskListManager().getTaskList().getTask(repository.getUrl(), bugId); if (task != null) { hyperlink.setToolTipText(task.getSummary()); } diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaTaskEditorInput.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaTaskEditorInput.java index 4d18dd231..33d49b9a2 100644 --- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaTaskEditorInput.java +++ b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaTaskEditorInput.java @@ -35,7 +35,7 @@ public class BugzillaTaskEditorInput extends RepositoryTaskEditorInput { private BugzillaTask bugTask; public BugzillaTaskEditorInput(TaskRepository repository, BugzillaTask bugTask, boolean offline) { - super(repository, bugTask.getHandleIdentifier(), bugTask.getUrl()); + super(repository, bugTask.getHandleIdentifier(), bugTask.getTaskUrl()); this.bugTask = bugTask; updateOptions(getTaskData()); updateOptions(getOldTaskData()); diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaTaskExternalizer.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaTaskExternalizer.java index 90765b928..b5716745e 100644 --- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaTaskExternalizer.java +++ b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaTaskExternalizer.java @@ -14,8 +14,8 @@ package org.eclipse.mylar.internal.bugzilla.ui.tasklist; import org.eclipse.mylar.internal.bugzilla.core.BugzillaQueryHit; import org.eclipse.mylar.internal.bugzilla.core.BugzillaRepositoryQuery; import org.eclipse.mylar.internal.bugzilla.core.BugzillaTask; +import org.eclipse.mylar.internal.tasks.core.RepositoryTaskHandleUtil; import org.eclipse.mylar.tasks.core.AbstractRepositoryQuery; -import org.eclipse.mylar.tasks.core.AbstractRepositoryTask; import org.eclipse.mylar.tasks.core.AbstractTaskContainer; import org.eclipse.mylar.tasks.core.DelegatingTaskExternalizer; import org.eclipse.mylar.tasks.core.ITask; @@ -120,9 +120,13 @@ public class BugzillaTaskExternalizer extends DelegatingTaskExternalizer { } else { throw new TaskExternalizationException("Description not stored for bug report"); } - BugzillaTask task = new BugzillaTask(handle, label, false); + + String repositoryUrl = RepositoryTaskHandleUtil.getRepositoryUrl(handle); + String taskId = RepositoryTaskHandleUtil.getTaskId(handle); + + BugzillaTask task = new BugzillaTask(repositoryUrl, taskId, label, false); super.readTaskInfo(task, taskList, element, parent, category); - + return task; } @@ -150,7 +154,7 @@ public class BugzillaTaskExternalizer extends DelegatingTaskExternalizer { status = STATUS_RESO; } } - BugzillaQueryHit hit = new BugzillaQueryHit(taskList, "", "", query.getRepositoryUrl(), AbstractRepositoryTask + BugzillaQueryHit hit = new BugzillaQueryHit(taskList, "", "", query.getRepositoryUrl(), RepositoryTaskHandleUtil .getTaskId(handle), null, status); readQueryHitInfo(hit, taskList, query, element); } diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/RepositoryTaskHandleUtil.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/RepositoryTaskHandleUtil.java new file mode 100644 index 000000000..61cfad9a4 --- /dev/null +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/RepositoryTaskHandleUtil.java @@ -0,0 +1,55 @@ +/******************************************************************************* + * Copyright (c) 2004 - 2006 University Of British Columbia and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * University Of British Columbia - initial API and implementation + *******************************************************************************/ + +package org.eclipse.mylar.internal.tasks.core; + + + +/** + * @author Mik Kersten + */ +public class RepositoryTaskHandleUtil { + + public static final String HANDLE_DELIM = "-"; + + private static final String MISSING_REPOSITORY = "norepository"; + + public static String getHandle(String repositoryUrl, String taskId) { + if (repositoryUrl == null) { + return MISSING_REPOSITORY + HANDLE_DELIM + taskId; + } else if (taskId.contains(HANDLE_DELIM)) { + throw new RuntimeException("invalid handle for task, can not contain: " + HANDLE_DELIM + ", was: " + + taskId); + } else { + return repositoryUrl + HANDLE_DELIM + taskId; + } + } + + public static String getRepositoryUrl(String taskHandle) { + int index = taskHandle.lastIndexOf(RepositoryTaskHandleUtil.HANDLE_DELIM); + String url = null; + if (index != -1) { + url = taskHandle.substring(0, index); + } + return url; + } + + // @Deprecated + public static String getTaskId(String taskHandle) { + int index = taskHandle.lastIndexOf(HANDLE_DELIM); + if (index != -1) { + String id = taskHandle.substring(index + 1); + return id; + } + return null; + } + +} diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/TaskDataManager.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/TaskDataManager.java index 40297b59b..cb3885c2f 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/TaskDataManager.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/TaskDataManager.java @@ -27,7 +27,6 @@ import java.util.Set; import org.eclipse.mylar.core.MylarStatusHandler; import org.eclipse.mylar.tasks.core.AbstractAttributeFactory; import org.eclipse.mylar.tasks.core.AbstractRepositoryConnector; -import org.eclipse.mylar.tasks.core.AbstractRepositoryTask; import org.eclipse.mylar.tasks.core.RepositoryTaskAttribute; import org.eclipse.mylar.tasks.core.RepositoryTaskData; import org.eclipse.mylar.tasks.core.TaskRepositoryManager; @@ -100,16 +99,16 @@ public class TaskDataManager { * Add a RepositoryTaskData to the offline reports file. Previously stored * taskData is held and can be retrieved via getOldTaskData() */ - public void push(RepositoryTaskData newEntry) { - String handle = AbstractRepositoryTask.getHandle(newEntry.getRepositoryUrl(), newEntry.getId()); - RepositoryTaskData moveToOld = getNewDataMap().get(handle); + public void push(String taskHandle, RepositoryTaskData newEntry) { +// String handle = AbstractRepositoryTask.getHandle(newEntry.getRepositoryUrl(), newEntry.getId()); + RepositoryTaskData moveToOld = getNewDataMap().get(taskHandle); synchronized (file) { if (moveToOld != null) { - getOldDataMap().put(handle, moveToOld); + getOldDataMap().put(taskHandle, moveToOld); } else { - getOldDataMap().put(handle, newEntry); + getOldDataMap().put(taskHandle, newEntry); } - getNewDataMap().put(handle, newEntry); + getNewDataMap().put(taskHandle, newEntry); } } @@ -118,8 +117,8 @@ public class TaskDataManager { * * @param newData */ - public void replace(RepositoryTaskData newData) { - String handle = AbstractRepositoryTask.getHandle(newData.getRepositoryUrl(), newData.getId()); + public void replace(String handle, RepositoryTaskData newData) { +// String handle = AbstractRepositoryTask.getHandle(newData.getRepositoryUrl(), newData.getId()); synchronized (file) { getNewDataMap().put(handle, newData); } @@ -128,8 +127,8 @@ public class TaskDataManager { /** * Add an unsubmitted RepositoryTaskData to the offline reports file. */ - public void putUnsubmitted(RepositoryTaskData newEntry) { - String handle = AbstractRepositoryTask.getHandle(newEntry.getRepositoryUrl(), newEntry.getId()); + public void putUnsubmitted(String handle, RepositoryTaskData newEntry) { +// String handle = AbstractRepositoryTask.getHandle(newEntry.getRepositoryUrl(), newEntry.getId()); synchronized (file) { getUnsubmittedTaskData().put(handle, newEntry); } @@ -212,13 +211,13 @@ public class TaskDataManager { } - /** - * @return editable copy of task data with any edits applied - */ - public RepositoryTaskData getEditableCopy(String repositoryUrl, String taskId) { - String handle = AbstractRepositoryTask.getHandle(repositoryUrl, taskId); - return getEditableCopy(handle); - } +// /** +// * @return editable copy of task data with any edits applied +// */ +// public RepositoryTaskData getEditableCopy(String handle) { +// String handle = AbstractRepositoryTask.getHandle(repositoryUrl, taskId); +// return getEditableCopy(handle); +// } public void saveEdits(String handle, Set<RepositoryTaskAttribute> attributes) { synchronized (file) { @@ -263,15 +262,15 @@ public class TaskDataManager { return data; } - /** - * Returns the most recent copy of the task data. - * - * @return offline task data, null if no data found - */ - public RepositoryTaskData getRepsitoryTaskData(String repositoryUrl, String taskId) { - String handle = AbstractRepositoryTask.getHandle(repositoryUrl, taskId); - return getRepositoryTaskData(handle); - } +// /** +// * Returns the most recent copy of the task data. +// * +// * @return offline task data, null if no data found +// */ +// public RepositoryTaskData getRepsitoryTaskData(String repositoryUrl, String taskId) { +// String handle = AbstractRepositoryTask.getHandle(repositoryUrl, taskId); +// return getRepositoryTaskData(handle); +// } /** * Returns the old copy if exists, null otherwise. @@ -280,13 +279,13 @@ public class TaskDataManager { return getOldDataMap().get(handle); } - /** - * Returns the old copy if exists, null otherwise. - */ - public RepositoryTaskData getOldRepositoryTaskData(String repositoryUrl, String taskId) { - String handle = AbstractRepositoryTask.getHandle(repositoryUrl, taskId); - return getOldRepositoryTaskData(handle); - } +// /** +// * Returns the old copy if exists, null otherwise. +// */ +// public RepositoryTaskData getOldRepositoryTaskData(String repositoryUrl, String taskId) { +// String handle = AbstractRepositoryTask.getHandle(repositoryUrl, taskId); +// return getOldRepositoryTaskData(handle); +// } /** * Remove some bugs from the offline reports list @@ -294,17 +293,16 @@ public class TaskDataManager { * @param indicesToRemove * An array of the indicies of the bugs to be removed */ - public void remove(List<RepositoryTaskData> dataToRemove) { + public void remove(List<String> handlesToRemove) { synchronized (file) { - for (RepositoryTaskData repositoryTaskData : dataToRemove) { - remove(repositoryTaskData); + for (String handle: handlesToRemove) { + remove(handle); } } } - public void remove(RepositoryTaskData taskData) { + public void remove(String handle) { synchronized (file) { - String handle = AbstractRepositoryTask.getHandle(taskData.getRepositoryUrl(), taskData.getId()); getNewDataMap().remove(handle); getOldDataMap().remove(handle); } diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/WebTask.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/WebTask.java index b5657d1af..72906b47d 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/WebTask.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/WebTask.java @@ -25,26 +25,26 @@ public class WebTask extends AbstractRepositoryTask { private static final String UNKNOWN_OWNER = "<unknown>"; - private final String id; +// private final String id; private final String taskPrefix; - private final String repositoryUrl; +// private final String repositoryUrl; private final String repsitoryType; public WebTask(String id, String label, String taskPrefix, String repositoryUrl, String repsitoryType) { - super(taskPrefix + id, label, false); - this.id = id; + super(repositoryUrl, id, label, false); +// this.id = id; this.taskPrefix = taskPrefix; this.repositoryUrl = repositoryUrl; this.repsitoryType = repsitoryType; - setUrl(taskPrefix + id); + setTaskUrl(taskPrefix + id); } - public String getId() { - return this.id; - } +// public String getId() { +// return this.id; +// } public String getTaskPrefix() { return this.taskPrefix; @@ -55,13 +55,13 @@ public class WebTask extends AbstractRepositoryTask { return repsitoryType; } - @Override - public String getRepositoryUrl() { - return repositoryUrl; - } +// @Override +// public String getRepositoryUrl() { +// return repositoryUrl; +// } @Override - public String getIdLabel() { + public String getIdentifyingLabel() { return null; } diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/.AbstractRepositoryTask.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/.AbstractRepositoryTask.java index ede3bdf5b..e13b1598b 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/.AbstractRepositoryTask.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/.AbstractRepositoryTask.java @@ -11,10 +11,9 @@ package org.eclipse.mylar.tasks.core; -import java.util.Date; - import org.eclipse.core.runtime.IStatus; import org.eclipse.mylar.core.net.HtmlStreamTokenizer; +import org.eclipse.mylar.internal.tasks.core.RepositoryTaskHandleUtil; /** * Virtual proxy for a repository task. @@ -24,13 +23,13 @@ import org.eclipse.mylar.core.net.HtmlStreamTokenizer; */ public abstract class AbstractRepositoryTask extends Task { - private static final String CONTEXT_HANDLE_DELIM = "-"; - - private static final String MISSING_REPOSITORY_HANDLE = "norepository" + CONTEXT_HANDLE_DELIM; - /** The last time this task's bug report was in a synchronized (read?) state. */ protected String lastSynchronizedDateStamp; + protected String repositoryUrl; + + protected String taskId; + protected transient RepositoryTaskData taskData; protected boolean currentlySynchronizing; @@ -49,14 +48,21 @@ public abstract class AbstractRepositoryTask extends Task { protected RepositoryTaskSyncState syncState = RepositoryTaskSyncState.SYNCHRONIZED; - public static final String HANDLE_DELIM = "-"; - protected IStatus status = null; - - public AbstractRepositoryTask(String handle, String label, boolean newTask) { - super(handle, label, newTask); + + public AbstractRepositoryTask(String repositoryUrl, String taskId, String label, boolean newTask) { +// super(getHandle(repositoryUrl, taskId), label, newTask); + super(null, label, newTask); + this.repositoryUrl = repositoryUrl; + this.taskId = taskId; + } + + @Override + public final String getHandleIdentifier() { + return RepositoryTaskHandleUtil.getHandle(repositoryUrl, taskId); } + @Override public abstract String getRepositoryKind(); @@ -80,22 +86,21 @@ public abstract class AbstractRepositoryTask extends Task { return syncState; } - public String getRepositoryUrl() { - return AbstractRepositoryTask.getRepositoryUrl(getHandleIdentifier()); - } - + /** + * TODO: remove + */ @Override - public boolean isLocal() { + public final boolean isLocal() { return false; } - public static long getLastRefreshTimeInMinutes(Date lastRefresh) { - Date timeNow = new Date(); - if (lastRefresh == null) - lastRefresh = new Date(); - long timeDifference = (timeNow.getTime() - lastRefresh.getTime()) / 60000; - return timeDifference; - } +// public static long getLastRefreshTimeInMinutes(Date lastRefresh) { +// Date timeNow = new Date(); +// if (lastRefresh == null) +// lastRefresh = new Date(); +// long timeDifference = (timeNow.getTime() - lastRefresh.getTime()) / 60000; +// return timeDifference; +// } public boolean isSynchronizing() { return currentlySynchronizing; @@ -106,44 +111,12 @@ public abstract class AbstractRepositoryTask extends Task { } /** - * Human readable identifier for this task. Override if different than ID, can return - * null if no such label exists. + * Human readable identifier for this task. Override if different than ID, + * can return null if no such label exists. */ - public String getIdLabel() { - return getTaskId(handleIdentifier); - } - - public static String getTaskId(String taskHandle) { - int index = taskHandle.lastIndexOf(AbstractRepositoryTask.HANDLE_DELIM); - if (index != -1) { - String id = taskHandle.substring(index + 1); - return id; - } - return null; - } - - public static String getRepositoryUrl(String taskHandle) { - int index = taskHandle.lastIndexOf(AbstractRepositoryTask.HANDLE_DELIM); - String url = null; - if (index != -1) { - url = taskHandle.substring(0, index); - } - return url; - } - - public static String getHandle(String repositoryUrl, String taskId) { - if (repositoryUrl == null) { - return MISSING_REPOSITORY_HANDLE + taskId; - } else if (taskId.contains(CONTEXT_HANDLE_DELIM)) { - throw new RuntimeException("invalid handle for task, can not contain: " + CONTEXT_HANDLE_DELIM + ", was: " - + taskId); - } else { - return repositoryUrl + CONTEXT_HANDLE_DELIM + taskId; - } - } - - public static String getHandle(String repositoryUrl, int taskId) { - return AbstractRepositoryTask.getHandle(repositoryUrl, "" + taskId); + public String getIdentifyingLabel() { + return taskId; +// return RepositoryTaskHandleUtil.getTaskId(handleIdentifier); } public boolean isDirty() { @@ -181,31 +154,46 @@ public abstract class AbstractRepositoryTask extends Task { return "<unknown>"; } } - + public IStatus getStatus() { return status; } - + public void setStatus(IStatus status) { this.status = status; } + +// /** +// * Need to update URL since it is derived from handle identifier. +// */ +// @Override +// public void setHandleIdentifier(String newHandleIdentifier) { +// String oldHandleIdentifier = getHandleIdentifier(); +// String url = getUrl(); +// if (oldHandleIdentifier != null && url != null) { +// String oldRepositoryUrl = AbstractRepositoryTask.getRepositoryUrl(oldHandleIdentifier); +// String newRepositoryUrl = AbstractRepositoryTask.getRepositoryUrl(newHandleIdentifier); +// +// if (url.startsWith(oldRepositoryUrl)) { +// setUrl(newRepositoryUrl + url.substring(oldRepositoryUrl.length())); +// } +// } +// super.setHandleIdentifier(newHandleIdentifier); +// } + - /** - * Need to update URL since it is derived from handle identifier. - */ - @Override - public void setHandleIdentifier(String newHandleIdentifier) { - String oldHandleIdentifier = getHandleIdentifier(); - String url = getUrl(); - if (oldHandleIdentifier != null && url != null) { - String oldRepositoryUrl = AbstractRepositoryTask.getRepositoryUrl(oldHandleIdentifier); - String newRepositoryUrl = AbstractRepositoryTask.getRepositoryUrl(newHandleIdentifier); - - if (url.startsWith(oldRepositoryUrl)) { - setUrl(newRepositoryUrl + url.substring(oldRepositoryUrl.length())); - } - } - super.setHandleIdentifier(newHandleIdentifier); + public final String getTaskId() { + return taskId; } - + + public final String getRepositoryUrl() { + // return + // AbstractRepositoryTask.getRepositoryUrl(getHandleIdentifier()); + return repositoryUrl; + } + + public final void setRepositoryUrl(String repositoryUrl) { + this.repositoryUrl = repositoryUrl; + } + } diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractQueryHit.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractQueryHit.java index 63398eb6a..d4c93d5f1 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractQueryHit.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractQueryHit.java @@ -10,6 +10,7 @@ *******************************************************************************/ package org.eclipse.mylar.tasks.core; +import org.eclipse.mylar.internal.tasks.core.RepositoryTaskHandleUtil; import org.eclipse.mylar.tasks.core.Task.PriorityLevel; @@ -112,7 +113,7 @@ public abstract class AbstractQueryHit implements ITaskListElement { if (task != null) { return task.getHandleIdentifier(); } - return AbstractRepositoryTask.getHandle(repositoryUrl, id); + return RepositoryTaskHandleUtil.getHandle(repositoryUrl, id); } /** diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractRepositoryTask.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractRepositoryTask.java index ede3bdf5b..e13b1598b 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractRepositoryTask.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractRepositoryTask.java @@ -11,10 +11,9 @@ package org.eclipse.mylar.tasks.core; -import java.util.Date; - import org.eclipse.core.runtime.IStatus; import org.eclipse.mylar.core.net.HtmlStreamTokenizer; +import org.eclipse.mylar.internal.tasks.core.RepositoryTaskHandleUtil; /** * Virtual proxy for a repository task. @@ -24,13 +23,13 @@ import org.eclipse.mylar.core.net.HtmlStreamTokenizer; */ public abstract class AbstractRepositoryTask extends Task { - private static final String CONTEXT_HANDLE_DELIM = "-"; - - private static final String MISSING_REPOSITORY_HANDLE = "norepository" + CONTEXT_HANDLE_DELIM; - /** The last time this task's bug report was in a synchronized (read?) state. */ protected String lastSynchronizedDateStamp; + protected String repositoryUrl; + + protected String taskId; + protected transient RepositoryTaskData taskData; protected boolean currentlySynchronizing; @@ -49,14 +48,21 @@ public abstract class AbstractRepositoryTask extends Task { protected RepositoryTaskSyncState syncState = RepositoryTaskSyncState.SYNCHRONIZED; - public static final String HANDLE_DELIM = "-"; - protected IStatus status = null; - - public AbstractRepositoryTask(String handle, String label, boolean newTask) { - super(handle, label, newTask); + + public AbstractRepositoryTask(String repositoryUrl, String taskId, String label, boolean newTask) { +// super(getHandle(repositoryUrl, taskId), label, newTask); + super(null, label, newTask); + this.repositoryUrl = repositoryUrl; + this.taskId = taskId; + } + + @Override + public final String getHandleIdentifier() { + return RepositoryTaskHandleUtil.getHandle(repositoryUrl, taskId); } + @Override public abstract String getRepositoryKind(); @@ -80,22 +86,21 @@ public abstract class AbstractRepositoryTask extends Task { return syncState; } - public String getRepositoryUrl() { - return AbstractRepositoryTask.getRepositoryUrl(getHandleIdentifier()); - } - + /** + * TODO: remove + */ @Override - public boolean isLocal() { + public final boolean isLocal() { return false; } - public static long getLastRefreshTimeInMinutes(Date lastRefresh) { - Date timeNow = new Date(); - if (lastRefresh == null) - lastRefresh = new Date(); - long timeDifference = (timeNow.getTime() - lastRefresh.getTime()) / 60000; - return timeDifference; - } +// public static long getLastRefreshTimeInMinutes(Date lastRefresh) { +// Date timeNow = new Date(); +// if (lastRefresh == null) +// lastRefresh = new Date(); +// long timeDifference = (timeNow.getTime() - lastRefresh.getTime()) / 60000; +// return timeDifference; +// } public boolean isSynchronizing() { return currentlySynchronizing; @@ -106,44 +111,12 @@ public abstract class AbstractRepositoryTask extends Task { } /** - * Human readable identifier for this task. Override if different than ID, can return - * null if no such label exists. + * Human readable identifier for this task. Override if different than ID, + * can return null if no such label exists. */ - public String getIdLabel() { - return getTaskId(handleIdentifier); - } - - public static String getTaskId(String taskHandle) { - int index = taskHandle.lastIndexOf(AbstractRepositoryTask.HANDLE_DELIM); - if (index != -1) { - String id = taskHandle.substring(index + 1); - return id; - } - return null; - } - - public static String getRepositoryUrl(String taskHandle) { - int index = taskHandle.lastIndexOf(AbstractRepositoryTask.HANDLE_DELIM); - String url = null; - if (index != -1) { - url = taskHandle.substring(0, index); - } - return url; - } - - public static String getHandle(String repositoryUrl, String taskId) { - if (repositoryUrl == null) { - return MISSING_REPOSITORY_HANDLE + taskId; - } else if (taskId.contains(CONTEXT_HANDLE_DELIM)) { - throw new RuntimeException("invalid handle for task, can not contain: " + CONTEXT_HANDLE_DELIM + ", was: " - + taskId); - } else { - return repositoryUrl + CONTEXT_HANDLE_DELIM + taskId; - } - } - - public static String getHandle(String repositoryUrl, int taskId) { - return AbstractRepositoryTask.getHandle(repositoryUrl, "" + taskId); + public String getIdentifyingLabel() { + return taskId; +// return RepositoryTaskHandleUtil.getTaskId(handleIdentifier); } public boolean isDirty() { @@ -181,31 +154,46 @@ public abstract class AbstractRepositoryTask extends Task { return "<unknown>"; } } - + public IStatus getStatus() { return status; } - + public void setStatus(IStatus status) { this.status = status; } + +// /** +// * Need to update URL since it is derived from handle identifier. +// */ +// @Override +// public void setHandleIdentifier(String newHandleIdentifier) { +// String oldHandleIdentifier = getHandleIdentifier(); +// String url = getUrl(); +// if (oldHandleIdentifier != null && url != null) { +// String oldRepositoryUrl = AbstractRepositoryTask.getRepositoryUrl(oldHandleIdentifier); +// String newRepositoryUrl = AbstractRepositoryTask.getRepositoryUrl(newHandleIdentifier); +// +// if (url.startsWith(oldRepositoryUrl)) { +// setUrl(newRepositoryUrl + url.substring(oldRepositoryUrl.length())); +// } +// } +// super.setHandleIdentifier(newHandleIdentifier); +// } + - /** - * Need to update URL since it is derived from handle identifier. - */ - @Override - public void setHandleIdentifier(String newHandleIdentifier) { - String oldHandleIdentifier = getHandleIdentifier(); - String url = getUrl(); - if (oldHandleIdentifier != null && url != null) { - String oldRepositoryUrl = AbstractRepositoryTask.getRepositoryUrl(oldHandleIdentifier); - String newRepositoryUrl = AbstractRepositoryTask.getRepositoryUrl(newHandleIdentifier); - - if (url.startsWith(oldRepositoryUrl)) { - setUrl(newRepositoryUrl + url.substring(oldRepositoryUrl.length())); - } - } - super.setHandleIdentifier(newHandleIdentifier); + public final String getTaskId() { + return taskId; } - + + public final String getRepositoryUrl() { + // return + // AbstractRepositoryTask.getRepositoryUrl(getHandleIdentifier()); + return repositoryUrl; + } + + public final void setRepositoryUrl(String repositoryUrl) { + this.repositoryUrl = repositoryUrl; + } + } diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DateRangeActivityDelegate.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DateRangeActivityDelegate.java index 57658336c..6297dac0a 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DateRangeActivityDelegate.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DateRangeActivityDelegate.java @@ -161,8 +161,8 @@ public class DateRangeActivityDelegate implements ITask { return task.getScheduledForDate(); } - public String getUrl() { - return task.getUrl(); + public String getTaskUrl() { + return task.getTaskUrl(); } public boolean hasBeenReminded() { @@ -213,9 +213,9 @@ public class DateRangeActivityDelegate implements ITask { task.setEstimatedTimeHours(estimated); } - public void setHandleIdentifier(String id) { - task.setHandleIdentifier(id); - } +// public void setHandleIdentifier(String id) { +// task.setHandleIdentifier(id); +// } public void setKind(String kind) { task.setKind(kind); @@ -241,8 +241,8 @@ public class DateRangeActivityDelegate implements ITask { task.setScheduledForDate(date); } - public void setUrl(String url) { - task.setUrl(url); + public void setTaskUrl(String url) { + task.setTaskUrl(url); } public int compareTo(ITaskListElement taskListElement) { diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DelegatingTaskExternalizer.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DelegatingTaskExternalizer.java index c71a9d8fe..12711a508 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DelegatingTaskExternalizer.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DelegatingTaskExternalizer.java @@ -188,8 +188,8 @@ public class DelegatingTaskExternalizer implements ITaskListExternalizer { node.setAttribute(KEY_ACTIVE, VAL_FALSE); } - if (task.getUrl() != null) { - node.setAttribute(KEY_ISSUEURL, task.getUrl()); + if (task.getTaskUrl() != null) { + node.setAttribute(KEY_ISSUEURL, task.getTaskUrl()); } node.setAttribute(KEY_NOTES, task.getNotes()); node.setAttribute(KEY_TIME_ESTIMATED, "" + task.getEstimateTimeHours()); @@ -357,9 +357,9 @@ public class DelegatingTaskExternalizer implements ITaskListExternalizer { task.setActive(false); } if (element.hasAttribute(KEY_ISSUEURL)) { - task.setUrl(element.getAttribute(KEY_ISSUEURL)); + task.setTaskUrl(element.getAttribute(KEY_ISSUEURL)); } else { - task.setUrl(""); + task.setTaskUrl(""); } if (element.hasAttribute(KEY_NOTES)) { task.setNotes(element.getAttribute(KEY_NOTES)); diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/ITask.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/ITask.java index 35199623e..b2c9fc776 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/ITask.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/ITask.java @@ -41,9 +41,9 @@ public interface ITask extends ITaskListElement { public abstract boolean hasValidUrl(); - public abstract void setUrl(String url); + public abstract void setTaskUrl(String url); - public abstract String getUrl(); + public abstract String getTaskUrl(); public abstract String getNotes(); diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/ITaskListElement.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/ITaskListElement.java index 4b19ec2e5..48576efe8 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/ITaskListElement.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/ITaskListElement.java @@ -22,7 +22,7 @@ public interface ITaskListElement extends Comparable<ITaskListElement> { public abstract String getHandleIdentifier(); - public abstract void setHandleIdentifier(String id); +// public abstract void setHandleIdentifier(String id); } diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/Task.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/Task.java index 78ca2e846..5d3aff81f 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/Task.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/Task.java @@ -99,10 +99,10 @@ public class Task implements ITask { } } + private String handleIdentifier = "-1"; + private boolean active = false; - protected String handleIdentifier = "-1"; - private boolean category = false; private boolean hasReminded = false; @@ -117,7 +117,7 @@ public class Task implements ITask { private boolean completed; - private String url = ""; + private String taskUrl = ""; private AbstractTaskContainer parentCategory = null; @@ -155,9 +155,9 @@ public class Task implements ITask { return handleIdentifier; } - public void setHandleIdentifier(String id) { - this.handleIdentifier = id; - } +// public void setHandleIdentifier(String id) { +// this.handleIdentifier = id; +// } public ITask getParent() { return parent; @@ -221,12 +221,12 @@ public class Task implements ITask { this.priority = priority; } - public void setUrl(String url) { - this.url = url; + public void setTaskUrl(String url) { + this.taskUrl = url; } - public String getUrl() { - return url; + public String getTaskUrl() { + return taskUrl; } public String getNotes() { @@ -341,7 +341,7 @@ public class Task implements ITask { } public boolean hasValidUrl() { - String taskUrl = getUrl(); + String taskUrl = getTaskUrl(); if (taskUrl != null && !taskUrl.equals("") && !taskUrl.equals("http://") && !taskUrl.equals("https://")) { try { new URL(taskUrl); diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskList.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskList.java index eb48efe56..5399cc749 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskList.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskList.java @@ -23,6 +23,7 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArraySet; import org.eclipse.mylar.core.MylarStatusHandler; +import org.eclipse.mylar.internal.tasks.core.RepositoryTaskHandleUtil; /** * TODO: some asymetry left between query containers and other task containers @@ -91,26 +92,33 @@ public class TaskList { } } - public void refactorRepositoryUrl(Object oldUrl, String newUrl) { + public void refactorRepositoryUrl(String oldRepositoryUrl, String newRepositoryUrl) { + // TODO: update mappings in offline task data, will currently lose them for (ITask task : tasks.values()) { if (task instanceof AbstractRepositoryTask) { AbstractRepositoryTask repositoryTask = (AbstractRepositoryTask) task; - if (oldUrl.equals(AbstractRepositoryTask.getRepositoryUrl(repositoryTask.getHandleIdentifier()))) { + if (oldRepositoryUrl.equals(RepositoryTaskHandleUtil.getRepositoryUrl(repositoryTask.getHandleIdentifier()))) { tasks.remove(repositoryTask.getHandleIdentifier()); - String id = AbstractRepositoryTask.getTaskId(repositoryTask.getHandleIdentifier()); - String newHandle = AbstractRepositoryTask.getHandle(newUrl, id); - repositoryTask.setHandleIdentifier(newHandle); - tasks.put(newHandle, repositoryTask); +// String id = AbstractRepositoryTask.getTaskId(repositoryTask.getHandleIdentifier()); +// String newHandle = AbstractRepositoryTask.getHandle(newUrl, id); +// repositoryTask.setHandleIdentifier(newHandle); + repositoryTask.setRepositoryUrl(newRepositoryUrl); + tasks.put(repositoryTask.getHandleIdentifier(), repositoryTask); + + String taskUrl = repositoryTask.getTaskUrl(); + if (taskUrl.startsWith(oldRepositoryUrl)) { + repositoryTask.setTaskUrl(newRepositoryUrl + taskUrl.substring(oldRepositoryUrl.length())); + } } } } for (AbstractRepositoryQuery query : queries.values()) { - if (query.getRepositoryUrl().equals(oldUrl)) { - query.setRepositoryUrl(newUrl); + if (query.getRepositoryUrl().equals(oldRepositoryUrl)) { + query.setRepositoryUrl(newRepositoryUrl); for (AbstractQueryHit hit : query.getHits()) { queryHits.remove(hit.getHandleIdentifier()); - hit.setRepositoryUrl(newUrl); + hit.setRepositoryUrl(newRepositoryUrl); queryHits.put(hit.getHandleIdentifier(), hit); } for (ITaskListChangeListener listener : changeListeners) { @@ -374,6 +382,8 @@ public class TaskList { } /** + * TODO: consider removing, if everything becomes a repository task + * * @return null if no such task. */ public ITask getTask(String handleIdentifier) { @@ -384,6 +394,19 @@ public class TaskList { } } + /** + * @since 2.0 + */ + public AbstractRepositoryTask getTask(String repositoryUrl, String taskId) { + String handle = RepositoryTaskHandleUtil.getHandle(repositoryUrl, taskId); + ITask task = getTask(handle); + if (task instanceof AbstractRepositoryTask) { + return (AbstractRepositoryTask)task; + } else { + return null; + } + } + public AbstractTaskContainer getContainerForHandle(String categoryHandle) { for (AbstractTaskContainer cat : categories.values()) { if (cat instanceof AbstractTaskContainer) { diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskRepositoryManager.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskRepositoryManager.java index 5a5ff151e..033b93c52 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskRepositoryManager.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskRepositoryManager.java @@ -27,6 +27,7 @@ import java.util.Set; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.Platform; import org.eclipse.mylar.core.MylarStatusHandler; +import org.eclipse.mylar.internal.tasks.core.RepositoryTaskHandleUtil; import org.eclipse.mylar.internal.tasks.core.TaskRepositoriesExternalizer; /** @@ -175,7 +176,7 @@ public class TaskRepositoryManager { if (activeTasks.size() == 1) { ITask activeTask = activeTasks.get(0); if (activeTask instanceof AbstractRepositoryTask) { - String repositoryUrl = AbstractRepositoryTask.getRepositoryUrl(activeTask.getHandleIdentifier()); + String repositoryUrl = RepositoryTaskHandleUtil.getRepositoryUrl(activeTask.getHandleIdentifier()); for (TaskRepository repository : getRepositories(repositoryKind)) { if (repository.getUrl().equals(repositoryUrl)) { return repository; diff --git a/org.eclipse.mylyn.tasks.tests/TaskAttachmentActionsTest.testfile b/org.eclipse.mylyn.tasks.tests/TaskAttachmentActionsTest.testfile new file mode 100644 index 000000000..2ced879fe --- /dev/null +++ b/org.eclipse.mylyn.tasks.tests/TaskAttachmentActionsTest.testfile @@ -0,0 +1,11 @@ +public class BugzillaContextLabelProvider extends AbstractContextLabelProvider { + + @Override + protected Image getImage(IMylarElement node) { + return TaskListImages.getImage(TaskListImages.TASK_REMOTE); + } + + @Override + protected Image getImage(IMylarRelation edge) { + return MylarImages.getImage(MylarBugsPlugin.EDGE_REF_BUGZILLA); + }
\ No newline at end of file diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/CopyDetailsActionTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/CopyDetailsActionTest.java index de4dec441..0247580bc 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/CopyDetailsActionTest.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/CopyDetailsActionTest.java @@ -19,9 +19,9 @@ import org.eclipse.mylar.tasks.tests.connector.MockRepositoryTask; public class CopyDetailsActionTest extends TestCase { public void testIdLabelIncluded() { - MockRepositoryTask task = new MockRepositoryTask("repo-123"); + MockRepositoryTask task = new MockRepositoryTask("123"); String text = CopyTaskDetailsAction.getTextForTask(task); - assertTrue(text.startsWith(task.getIdLabel())); + assertTrue(text.startsWith(task.getIdentifyingLabel())); } } diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/RepositoryTaskSynchronizationTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/RepositoryTaskSynchronizationTest.java index a4189dbdb..bbc0f0a5f 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/RepositoryTaskSynchronizationTest.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/RepositoryTaskSynchronizationTest.java @@ -306,10 +306,10 @@ public class RepositoryTaskSynchronizationTest extends TestCase { AbstractRepositoryTask task = primeTaskAndRepository(RepositoryTaskSyncState.SYNCHRONIZED, RepositoryTaskSyncState.SYNCHRONIZED); RepositoryTaskData taskData1 = new RepositoryTaskData(new MockAttributeFactory(), MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL, "1"); - TasksUiPlugin.getDefault().getTaskDataManager().push(taskData1); + TasksUiPlugin.getDefault().getTaskDataManager().push(task.getHandleIdentifier(), taskData1); RepositoryTaskData taskData2 = new RepositoryTaskData(new MockAttributeFactory(), MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL, "1"); taskData2.setNewComment("new comment"); - TasksUiPlugin.getDefault().getTaskDataManager().push(taskData2); + TasksUiPlugin.getDefault().getTaskDataManager().push(task.getHandleIdentifier(), taskData2); List<ITaskListElement> tasks = new ArrayList<ITaskListElement>(); tasks.add(task); diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataManagerTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataManagerTest.java index 4af817d0b..b1c67a86c 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataManagerTest.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataManagerTest.java @@ -16,8 +16,8 @@ import java.util.Set; import junit.framework.TestCase; import org.eclipse.core.runtime.CoreException; +import org.eclipse.mylar.internal.tasks.core.RepositoryTaskHandleUtil; import org.eclipse.mylar.internal.tasks.core.TaskDataManager; -import org.eclipse.mylar.tasks.core.AbstractRepositoryTask; import org.eclipse.mylar.tasks.core.RepositoryTaskAttribute; import org.eclipse.mylar.tasks.core.RepositoryTaskData; import org.eclipse.mylar.tasks.tests.connector.MockAttributeFactory; @@ -50,26 +50,36 @@ public class TaskDataManagerTest extends TestCase { public void testAdd() throws CoreException { RepositoryTaskData taskData = new RepositoryTaskData(new MockAttributeFactory(), MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL, "1"); - offlineTaskDataManager.push(taskData); - assertNotNull(offlineTaskDataManager.getRepsitoryTaskData(MockRepositoryConnector.REPOSITORY_URL, "1")); + offlineTaskDataManager.push(RepositoryTaskHandleUtil.getHandle(MockRepositoryConnector.REPOSITORY_URL, "1"), + taskData); + assertNotNull(offlineTaskDataManager.getRepositoryTaskData(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "1"))); } public void testSave() throws CoreException, IOException, ClassNotFoundException { RepositoryTaskData taskData = new RepositoryTaskData(new MockAttributeFactory(), MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL, "1"); - offlineTaskDataManager.push(taskData); + offlineTaskDataManager.push(RepositoryTaskHandleUtil.getHandle(MockRepositoryConnector.REPOSITORY_URL, "1"), + taskData); taskData = new RepositoryTaskData(new MockAttributeFactory(), MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL, "2"); - offlineTaskDataManager.push(taskData); - assertNotNull(offlineTaskDataManager.getRepsitoryTaskData(MockRepositoryConnector.REPOSITORY_URL, "1")); - assertNotNull(offlineTaskDataManager.getRepsitoryTaskData(MockRepositoryConnector.REPOSITORY_URL, "2")); + offlineTaskDataManager.push(RepositoryTaskHandleUtil.getHandle(MockRepositoryConnector.REPOSITORY_URL, "2"), + taskData); + assertNotNull(offlineTaskDataManager.getRepositoryTaskData(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "1"))); + assertNotNull(offlineTaskDataManager.getRepositoryTaskData(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "2"))); offlineTaskDataManager.save(); offlineTaskDataManager.clear(); - assertNull(offlineTaskDataManager.getRepsitoryTaskData(MockRepositoryConnector.REPOSITORY_URL, "1")); - assertNull(offlineTaskDataManager.getRepsitoryTaskData(MockRepositoryConnector.REPOSITORY_URL, "2")); + assertNull(offlineTaskDataManager.getRepositoryTaskData(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "1"))); + assertNull(offlineTaskDataManager.getRepositoryTaskData(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "2"))); offlineTaskDataManager.readOfflineData(); - assertNotNull(offlineTaskDataManager.getRepsitoryTaskData(MockRepositoryConnector.REPOSITORY_URL, "1")); - assertNotNull(offlineTaskDataManager.getRepsitoryTaskData(MockRepositoryConnector.REPOSITORY_URL, "2")); + assertNotNull(offlineTaskDataManager.getRepositoryTaskData(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "1"))); + assertNotNull(offlineTaskDataManager.getRepositoryTaskData(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "2"))); } public void testGetNextOfflineBugId() throws IOException, ClassNotFoundException { @@ -85,162 +95,191 @@ public class TaskDataManagerTest extends TestCase { RepositoryTaskData taskData = new RepositoryTaskData(new MockAttributeFactory(), MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL, "1"); taskData.setNewComment("version 1"); - offlineTaskDataManager.push(taskData); - assertNotNull(offlineTaskDataManager.getRepsitoryTaskData(MockRepositoryConnector.REPOSITORY_URL, "1")); + offlineTaskDataManager.push(RepositoryTaskHandleUtil.getHandle(MockRepositoryConnector.REPOSITORY_URL, "1"), + taskData); + assertNotNull(offlineTaskDataManager.getRepositoryTaskData(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "1"))); taskData = new RepositoryTaskData(new MockAttributeFactory(), MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL, "1"); taskData.setNewComment("version 2"); - offlineTaskDataManager.push(taskData); + offlineTaskDataManager.push(RepositoryTaskHandleUtil.getHandle(MockRepositoryConnector.REPOSITORY_URL, "1"), + taskData); offlineTaskDataManager.save(); offlineTaskDataManager.clear(); offlineTaskDataManager.readOfflineData(); - assertEquals("version 2", offlineTaskDataManager.getRepsitoryTaskData(MockRepositoryConnector.REPOSITORY_URL, "1") - .getNewComment()); - assertEquals("version 1", offlineTaskDataManager.getOldRepositoryTaskData(MockRepositoryConnector.REPOSITORY_URL, "1") - .getNewComment()); + assertEquals("version 2", offlineTaskDataManager.getRepositoryTaskData( + RepositoryTaskHandleUtil.getHandle(MockRepositoryConnector.REPOSITORY_URL, "1")).getNewComment()); + assertEquals("version 1", offlineTaskDataManager.getOldRepositoryTaskData( + RepositoryTaskHandleUtil.getHandle(MockRepositoryConnector.REPOSITORY_URL, "1")).getNewComment()); } - public void testUniqueCopy() throws Exception { RepositoryTaskData taskData = new RepositoryTaskData(new MockAttributeFactory(), MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL, "1"); - offlineTaskDataManager.push(taskData); - RepositoryTaskData taskData2 = offlineTaskDataManager.getEditableCopy(MockRepositoryConnector.REPOSITORY_URL, "1"); + offlineTaskDataManager.push(RepositoryTaskHandleUtil.getHandle(MockRepositoryConnector.REPOSITORY_URL, "1"), + taskData); + RepositoryTaskData taskData2 = offlineTaskDataManager.getEditableCopy(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "1")); assertNotNull(taskData2); taskData2.setNewComment("test"); taskData = null; - taskData = offlineTaskDataManager.getRepsitoryTaskData(MockRepositoryConnector.REPOSITORY_URL, "1"); + taskData = offlineTaskDataManager.getRepositoryTaskData(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "1")); assertFalse(taskData.getNewComment().equals("test")); taskData = null; - taskData = offlineTaskDataManager.getOldRepositoryTaskData(MockRepositoryConnector.REPOSITORY_URL, "1"); - assertFalse(taskData.getNewComment().equals("test")); + taskData = offlineTaskDataManager.getOldRepositoryTaskData(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "1")); + assertFalse(taskData.getNewComment().equals("test")); } - + public void testRemoveRepositoryTaskData() throws CoreException, IOException, ClassNotFoundException { RepositoryTaskData taskData = new RepositoryTaskData(new MockAttributeFactory(), MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL, "1"); - offlineTaskDataManager.push(taskData); + offlineTaskDataManager.push(RepositoryTaskHandleUtil.getHandle(MockRepositoryConnector.REPOSITORY_URL, "1"), + taskData); taskData = new RepositoryTaskData(new MockAttributeFactory(), MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL, "2"); - offlineTaskDataManager.push(taskData); + offlineTaskDataManager.push(RepositoryTaskHandleUtil.getHandle(MockRepositoryConnector.REPOSITORY_URL, "2"), + taskData); offlineTaskDataManager.save(); - assertNotNull(offlineTaskDataManager.getRepsitoryTaskData(MockRepositoryConnector.REPOSITORY_URL, "1")); - assertNotNull(offlineTaskDataManager.getRepsitoryTaskData(MockRepositoryConnector.REPOSITORY_URL, "2")); - offlineTaskDataManager.remove(taskData); - assertNotNull(offlineTaskDataManager.getRepsitoryTaskData(MockRepositoryConnector.REPOSITORY_URL, "1")); - assertNull(offlineTaskDataManager.getRepsitoryTaskData(MockRepositoryConnector.REPOSITORY_URL, "2")); + assertNotNull(offlineTaskDataManager.getRepositoryTaskData(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "1"))); + assertNotNull(offlineTaskDataManager.getRepositoryTaskData(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "2"))); + offlineTaskDataManager.remove(RepositoryTaskHandleUtil.getHandle(MockRepositoryConnector.REPOSITORY_URL, "2")); + assertNotNull(offlineTaskDataManager.getRepositoryTaskData(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "1"))); + assertNull(offlineTaskDataManager.getRepositoryTaskData(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "2"))); offlineTaskDataManager.save(); offlineTaskDataManager.clear(); offlineTaskDataManager.readOfflineData(); - assertNotNull(offlineTaskDataManager.getRepsitoryTaskData(MockRepositoryConnector.REPOSITORY_URL, "1")); - assertNull(offlineTaskDataManager.getRepsitoryTaskData(MockRepositoryConnector.REPOSITORY_URL, "2")); + assertNotNull(offlineTaskDataManager.getRepositoryTaskData(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "1"))); + assertNull(offlineTaskDataManager.getRepositoryTaskData(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "2"))); } public void testRemoveListOfRepositoryTaskData() throws CoreException, IOException, ClassNotFoundException { RepositoryTaskData taskData1 = new RepositoryTaskData(new MockAttributeFactory(), MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL, "1"); - offlineTaskDataManager.push(taskData1); + offlineTaskDataManager.push(RepositoryTaskHandleUtil.getHandle(MockRepositoryConnector.REPOSITORY_URL, "1"), + taskData1); RepositoryTaskData taskData2 = new RepositoryTaskData(new MockAttributeFactory(), MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL, "2"); - offlineTaskDataManager.push(taskData2); + offlineTaskDataManager.push(RepositoryTaskHandleUtil.getHandle(MockRepositoryConnector.REPOSITORY_URL, "2"), + taskData2); offlineTaskDataManager.save(); - assertNotNull(offlineTaskDataManager.getRepsitoryTaskData(MockRepositoryConnector.REPOSITORY_URL, "1")); - assertNotNull(offlineTaskDataManager.getRepsitoryTaskData(MockRepositoryConnector.REPOSITORY_URL, "2")); - ArrayList<RepositoryTaskData> list = new ArrayList<RepositoryTaskData>(); - list.add(taskData1); - list.add(taskData2); + assertNotNull(offlineTaskDataManager.getRepositoryTaskData(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "1"))); + assertNotNull(offlineTaskDataManager.getRepositoryTaskData(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "2"))); + ArrayList<String> list = new ArrayList<String>(); + list.add(RepositoryTaskHandleUtil.getHandle(MockRepositoryConnector.REPOSITORY_URL, "1")); + list.add(RepositoryTaskHandleUtil.getHandle(MockRepositoryConnector.REPOSITORY_URL, "2")); offlineTaskDataManager.remove(list); - assertNull(offlineTaskDataManager.getRepsitoryTaskData(MockRepositoryConnector.REPOSITORY_URL, "1")); - assertNull(offlineTaskDataManager.getRepsitoryTaskData(MockRepositoryConnector.REPOSITORY_URL, "2")); + assertNull(offlineTaskDataManager.getRepositoryTaskData(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "1"))); + assertNull(offlineTaskDataManager.getRepositoryTaskData(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "2"))); offlineTaskDataManager.save(); offlineTaskDataManager.clear(); offlineTaskDataManager.readOfflineData(); - assertNull(offlineTaskDataManager.getRepsitoryTaskData(MockRepositoryConnector.REPOSITORY_URL, "1")); - assertNull(offlineTaskDataManager.getRepsitoryTaskData(MockRepositoryConnector.REPOSITORY_URL, "2")); + assertNull(offlineTaskDataManager.getRepositoryTaskData(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "1"))); + assertNull(offlineTaskDataManager.getRepositoryTaskData(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "2"))); } public void testEditing() { RepositoryTaskData taskData = new RepositoryTaskData(new MockAttributeFactory(), - MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL, "1"); - offlineTaskDataManager.push(taskData); - - assertNotNull(offlineTaskDataManager.getRepositoryTaskData( AbstractRepositoryTask.getHandle(MockRepositoryConnector.REPOSITORY_URL, "1"))); - assertNotNull(offlineTaskDataManager.getOldRepositoryTaskData(AbstractRepositoryTask.getHandle(MockRepositoryConnector.REPOSITORY_URL, "1"))); - - RepositoryTaskData editData = offlineTaskDataManager.getEditableCopy(AbstractRepositoryTask.getHandle(MockRepositoryConnector.REPOSITORY_URL, "1")); + MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL, "1"); + offlineTaskDataManager.push(RepositoryTaskHandleUtil.getHandle(MockRepositoryConnector.REPOSITORY_URL, "1"), + taskData); + + assertNotNull(offlineTaskDataManager.getRepositoryTaskData(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "1"))); + assertNotNull(offlineTaskDataManager.getOldRepositoryTaskData(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "1"))); + + RepositoryTaskData editData = offlineTaskDataManager.getEditableCopy(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "1")); assertNotNull(editData); editData.setAttributeFactory(new MockAttributeFactory()); editData.setAttributeValue(RepositoryTaskAttribute.COMMENT_NEW, "new comment"); -// for (RepositoryTaskAttribute attribute: editData.getAttributes()) { -// assertTrue(taskData.getAttribute(attribute.getID()).equals(attribute)); -// } - + // for (RepositoryTaskAttribute attribute: editData.getAttributes()) { + // assertTrue(taskData.getAttribute(attribute.getID()).equals(attribute)); + // } + Set<RepositoryTaskAttribute> attSave = new HashSet<RepositoryTaskAttribute>(); attSave.add(editData.getAttribute(RepositoryTaskAttribute.COMMENT_NEW)); - offlineTaskDataManager.saveEdits(AbstractRepositoryTask.getHandle(MockRepositoryConnector.REPOSITORY_URL, "1"), attSave); - + offlineTaskDataManager.saveEdits(RepositoryTaskHandleUtil.getHandle(MockRepositoryConnector.REPOSITORY_URL, "1"), + attSave); + editData = null; - editData = offlineTaskDataManager.getEditableCopy(AbstractRepositoryTask.getHandle(MockRepositoryConnector.REPOSITORY_URL, "1")); + editData = offlineTaskDataManager.getEditableCopy(RepositoryTaskHandleUtil.getHandle( + MockRepositoryConnector.REPOSITORY_URL, "1")); assertNotNull(editData); assertEquals("new comment", editData.getAttributeValue(RepositoryTaskAttribute.COMMENT_NEW)); - - - - + } - -// /** DND -// * As is will write 81481326 bytes. -// * -// * @throws Exception -// */ -// public void testLargeDataSet() throws Exception { -// RepositoryTaskData taskData; -// for (int x = 1; x < 500; x++) { -// taskData = new RepositoryTaskData(new MockAttributeFactory(), MockRepositoryConnector.REPOSITORY_KIND, -// MockRepositoryConnector.REPOSITORY_URL, "" + x); -// -// for (int y = 1; y < 60; y++) { -// RepositoryTaskAttribute attribute = new RepositoryTaskAttribute("" + y, "" + y, false); -// for (int z = 1; z < 10; z++) { -// attribute.addOption("" + z, "" + z); -// attribute.addValue("" + z); -// } -// taskData.addAttribute("" + y, attribute); -// } -// -// for (int y = 1; y < 5; y++) { -// RepositoryOperation op = new RepositoryOperation("" + y, "" + y); -// taskData.addOperation(op); -// } -// -// try { -// for (int y = 1; y < 1000; y++) { -// TaskComment comment = new TaskComment(new MockAttributeFactory(), y); -// comment.setAttributeValue(RepositoryTaskAttribute.COMMENT_TEXT, "Testing \u05D0"); -// taskData.addComment(comment); -// } -// } catch (StackOverflowError e) { -// e.printStackTrace(); -// } -// -// // for(int y = 1; y < 1000; y++) { -// // RepositoryAttachment attachment = new -// // RepositoryAttachment(repository, new MockAttributeFactory()); -// // taskData.addAttachment(attachment); -// // } -// -// offlineTaskDataManager.put(taskData); -// offlineTaskDataManager.put(taskData); -// } -// System.err.println("done Building"); -// offlineTaskDataManager.save(); -// System.err.println("Saved"); -// File file = TasksUiPlugin.getDefault().getOfflineReportsFilePath().toFile(); -// System.err.println(file.length()); -// offlineTaskDataManager.clear(); -// offlineTaskDataManager.readOfflineData(); -// assertNotNull(offlineTaskDataManager.getOldTaskData(AbstractRepositoryTask.getHandle( -// MockRepositoryConnector.REPOSITORY_URL, 400))); -// } + + // /** DND + // * As is will write 81481326 bytes. + // * + // * @throws Exception + // */ + // public void testLargeDataSet() throws Exception { + // RepositoryTaskData taskData; + // for (int x = 1; x < 500; x++) { + // taskData = new RepositoryTaskData(new MockAttributeFactory(), + // MockRepositoryConnector.REPOSITORY_KIND, + // MockRepositoryConnector.REPOSITORY_URL, "" + x); + // + // for (int y = 1; y < 60; y++) { + // RepositoryTaskAttribute attribute = new RepositoryTaskAttribute("" + y, + // "" + y, false); + // for (int z = 1; z < 10; z++) { + // attribute.addOption("" + z, "" + z); + // attribute.addValue("" + z); + // } + // taskData.addAttribute("" + y, attribute); + // } + // + // for (int y = 1; y < 5; y++) { + // RepositoryOperation op = new RepositoryOperation("" + y, "" + y); + // taskData.addOperation(op); + // } + // + // try { + // for (int y = 1; y < 1000; y++) { + // TaskComment comment = new TaskComment(new MockAttributeFactory(), y); + // comment.setAttributeValue(RepositoryTaskAttribute.COMMENT_TEXT, "Testing + // \u05D0"); + // taskData.addComment(comment); + // } + // } catch (StackOverflowError e) { + // e.printStackTrace(); + // } + // + // // for(int y = 1; y < 1000; y++) { + // // RepositoryAttachment attachment = new + // // RepositoryAttachment(repository, new MockAttributeFactory()); + // // taskData.addAttachment(attachment); + // // } + // + // offlineTaskDataManager.put(taskData); + // offlineTaskDataManager.put(taskData); + // } + // System.err.println("done Building"); + // offlineTaskDataManager.save(); + // System.err.println("Saved"); + // File file = + // TasksUiPlugin.getDefault().getOfflineReportsFilePath().toFile(); + // System.err.println(file.length()); + // offlineTaskDataManager.clear(); + // offlineTaskDataManager.readOfflineData(); + // assertNotNull(offlineTaskDataManager.getOldTaskData(AbstractRepositoryTask.getHandle( + // MockRepositoryConnector.REPOSITORY_URL, 400))); + // } } diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListDnDTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListDnDTest.java index 268e7e802..63a5f448f 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListDnDTest.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListDnDTest.java @@ -69,7 +69,7 @@ public class TaskListDnDTest extends TestCase { Set<ITask> tasks = manager.getTaskList().getRootTasks(); assertNotNull(tasks); assertEquals(1, tasks.size()); - assertEquals(url, tasks.iterator().next().getUrl()); + assertEquals(url, tasks.iterator().next().getTaskUrl()); // TODO: Failing due to asynchronous retrieval of title from url // assertEquals(title, tasks.get(0).getDescription(false)); diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListManagerTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListManagerTest.java index bb23c0cf6..8cb2ff717 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListManagerTest.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListManagerTest.java @@ -25,6 +25,7 @@ import java.util.Set; import junit.framework.TestCase; import org.eclipse.mylar.context.core.ContextCorePlugin; +import org.eclipse.mylar.internal.tasks.core.RepositoryTaskHandleUtil; import org.eclipse.mylar.internal.tasks.ui.ScheduledTaskListSynchJob; import org.eclipse.mylar.internal.tasks.ui.TaskListPreferenceConstants; import org.eclipse.mylar.internal.tasks.ui.TaskListSynchronizationScheduler; @@ -107,7 +108,7 @@ public class TaskListManagerTest extends TestCase { } public void testSingleTaskDeletion() { - MockRepositoryTask task = new MockRepositoryTask("mock-1"); + MockRepositoryTask task = new MockRepositoryTask("1"); manager.getTaskList().moveToRoot(task); manager.saveTaskList(); @@ -167,7 +168,7 @@ public class TaskListManagerTest extends TestCase { } public void testMigrateTaskHandles() { - AbstractRepositoryTask task = new MockRepositoryTask("http://a-123"); + AbstractRepositoryTask task = new MockRepositoryTask("http://a", "123"); manager.getTaskList().addTask(task); manager.refactorRepositoryUrl("http://a", "http://b"); assertNull(manager.getTaskList().getTask("http://a-123")); @@ -175,13 +176,13 @@ public class TaskListManagerTest extends TestCase { } public void testMigrateTaskHandlesWithExplicitSet() { - AbstractRepositoryTask task = new MockRepositoryTask("http://a-123"); - task.setUrl("http://a/task/123"); + AbstractRepositoryTask task = new MockRepositoryTask("http://a", "123"); + task.setTaskUrl("http://a/task/123"); manager.getTaskList().addTask(task); manager.refactorRepositoryUrl("http://a", "http://b"); assertNull(manager.getTaskList().getTask("http://a-123")); assertNotNull(manager.getTaskList().getTask("http://b-123")); - assertEquals("http://b/task/123", task.getUrl()); + assertEquals("http://b/task/123", task.getTaskUrl()); } public void testIsActiveToday() { @@ -230,18 +231,18 @@ public class TaskListManagerTest extends TestCase { } public void testIsCompletedToday() { - ITask task = new Task("1", "task-1", true); + ITask task = new Task("1", "task 1", true); task.setCompleted(true); task.setCompletionDate(new Date()); assertTrue(manager.isCompletedToday(task)); - MockRepositoryTask mockTask = new MockRepositoryTask(MOCK_REPOSITORY_URL + "-1"); + MockRepositoryTask mockTask = new MockRepositoryTask("1"); manager.getTaskList().addTask(mockTask); mockTask.setCompleted(true); mockTask.setCompletionDate(new Date()); - assertFalse(manager.isCompletedToday(mockTask)); + assertFalse("completed: " + mockTask.getCompletionDate(), manager.isCompletedToday(mockTask)); - mockTask = new MockRepositoryTask(MOCK_REPOSITORY_URL + "-2"); + mockTask = new MockRepositoryTask("2"); manager.getTaskList().addTask(mockTask); mockTask.setCompleted(true); mockTask.setCompletionDate(new Date()); @@ -297,7 +298,7 @@ public class TaskListManagerTest extends TestCase { } public void testCategoryPersistance() { - MockRepositoryTask task = new MockRepositoryTask("bug-1"); + MockRepositoryTask task = new MockRepositoryTask("1"); TaskCategory category = new TaskCategory("cat", manager.getTaskList()); manager.getTaskList().addCategory(category); manager.getTaskList().moveToContainer(category, task); @@ -322,8 +323,8 @@ public class TaskListManagerTest extends TestCase { } public void testDeleteCategoryMovesTasksToRoot() { - ITask task = new MockRepositoryTask("mock-delete"); - TaskCategory category = new TaskCategory("mock-cat", manager.getTaskList()); + ITask task = new MockRepositoryTask("delete"); + TaskCategory category = new TaskCategory("cat", manager.getTaskList()); manager.getTaskList().addTask(task, category); manager.getTaskList().addCategory(category); assertEquals(0, manager.getTaskList().getRootCategory().getChildren().size()); @@ -413,7 +414,7 @@ public class TaskListManagerTest extends TestCase { repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, repositoryUrl); TasksUiPlugin.getRepositoryManager().addRepository(repository, TasksUiPlugin.getDefault().getRepositoriesFilePath()); - MockRepositoryTask task = new MockRepositoryTask(repositoryUrl + "-1"); + MockRepositoryTask task = new MockRepositoryTask(repositoryUrl, "1"); TaskList taskList = TasksUiPlugin.getTaskListManager().getTaskList(); taskList.moveToRoot(task); MockRepositoryQuery query = new MockRepositoryQuery("query", taskList); @@ -429,7 +430,7 @@ public class TaskListManagerTest extends TestCase { } public void testArchiveRepositoryTaskExternalization() { - MockRepositoryTask repositoryTask = new MockRepositoryTask("bug-1"); + MockRepositoryTask repositoryTask = new MockRepositoryTask("1"); repositoryTask.setKind("kind"); manager.getTaskList().addTask(repositoryTask); assertEquals(1, manager.getTaskList().getArchiveContainer().getChildren().size()); @@ -446,7 +447,7 @@ public class TaskListManagerTest extends TestCase { TaskCategory cat1 = new TaskCategory("Category 1", manager.getTaskList()); manager.getTaskList().addCategory(cat1); - MockRepositoryTask reportInCat1 = new MockRepositoryTask("task-123"); + MockRepositoryTask reportInCat1 = new MockRepositoryTask("123"); manager.getTaskList().moveToContainer(cat1, reportInCat1); assertEquals(cat1, reportInCat1.getContainer()); @@ -510,12 +511,12 @@ public class TaskListManagerTest extends TestCase { manager.getTaskList().moveToContainer(cat1, task4); cat1Contents.add(task4); - MockRepositoryTask reportInCat1 = new MockRepositoryTask("task-123"); + MockRepositoryTask reportInCat1 = new MockRepositoryTask("123"); manager.getTaskList().moveToContainer(cat1, reportInCat1); assertEquals(cat1, reportInCat1.getContainer()); cat1Contents.add(reportInCat1); - MockRepositoryTask reportInRoot = new MockRepositoryTask("task-124"); + MockRepositoryTask reportInRoot = new MockRepositoryTask("124"); manager.getTaskList().moveToRoot(reportInRoot); rootTasks.add(reportInRoot); @@ -554,8 +555,8 @@ public class TaskListManagerTest extends TestCase { public void testExternalizationOfHandlesWithDash() { Set<ITask> rootTasks = new HashSet<ITask>(); - String handle = AbstractRepositoryTask.getHandle("http://url/repo-location", 1); - Task task1 = new Task(handle, "task 1", true); +// String handle = AbstractRepositoryTask.getHandle("http://url/repo-location", 1); + Task task1 = new Task("http://url/repo-location-1", "task 1", true); manager.getTaskList().moveToRoot(task1); rootTasks.add(task1); @@ -613,15 +614,15 @@ public class TaskListManagerTest extends TestCase { manager.getTaskList().addQuery(query1); manager.getTaskList().addQuery(query2); - Set<AbstractRepositoryQuery> queriesReturned = taskList.getQueriesForHandle(AbstractRepositoryTask.getHandle( - "repositoryURL", 1)); + Set<AbstractRepositoryQuery> queriesReturned = taskList.getQueriesForHandle(RepositoryTaskHandleUtil.getHandle( + "repositoryURL", "1")); assertNotNull(queriesReturned); assertEquals(2, queriesReturned.size()); assertTrue(queriesReturned.contains(query1)); assertTrue(queriesReturned.contains(query2)); Set<String> handles = new HashSet<String>(); - handles.add(AbstractRepositoryTask.getHandle("repositoryURL", 2)); + handles.add(RepositoryTaskHandleUtil.getHandle("repositoryURL", "2")); Set<AbstractQueryHit> hitsReturned = taskList.getQueryHits(handles); assertNotNull(hitsReturned); assertEquals(1, hitsReturned.size()); @@ -691,10 +692,10 @@ public class TaskListManagerTest extends TestCase { String bugNumber = "106939"; - MockRepositoryTask task1 = new MockRepositoryTask(repositoryUrl + "-" + bugNumber); + MockRepositoryTask task1 = new MockRepositoryTask(repositoryUrl, bugNumber); manager.getTaskList().addTask(task1); - MockRepositoryTask task2 = new MockRepositoryTask("https://unresolved-" + bugNumber); + MockRepositoryTask task2 = new MockRepositoryTask("https://unresolved", bugNumber); manager.getTaskList().addTask(task2); TaskList taskList = manager.getTaskList(); @@ -722,8 +723,8 @@ public class TaskListManagerTest extends TestCase { public void testMarkTaskRead() { String repositoryUrl = "http://mylar.eclipse.org/bugs222"; - MockRepositoryTask task1 = new MockRepositoryTask(repositoryUrl + "-1"); - MockRepositoryTask task2 = new MockRepositoryTask(repositoryUrl + "-2"); + MockRepositoryTask task1 = new MockRepositoryTask(repositoryUrl, "1"); + MockRepositoryTask task2 = new MockRepositoryTask(repositoryUrl, "2"); task1.setSyncState(RepositoryTaskSyncState.INCOMING); task2.setSyncState(RepositoryTaskSyncState.INCOMING); List<ITaskListElement> elements = new ArrayList<ITaskListElement>(); @@ -758,8 +759,8 @@ public class TaskListManagerTest extends TestCase { public void testMarkUnRead() { String repositoryUrl = "http://mylar.eclipse.org/bugs222"; - MockRepositoryTask task1 = new MockRepositoryTask(repositoryUrl + "-1"); - MockRepositoryTask task2 = new MockRepositoryTask(repositoryUrl + "-2"); + MockRepositoryTask task1 = new MockRepositoryTask(repositoryUrl, "1"); + MockRepositoryTask task2 = new MockRepositoryTask(repositoryUrl, "2"); assertEquals(RepositoryTaskSyncState.SYNCHRONIZED, task1.getSyncState()); assertEquals(RepositoryTaskSyncState.SYNCHRONIZED, task2.getSyncState()); List<ITaskListElement> elements = new ArrayList<ITaskListElement>(); diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryManagerTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryManagerTest.java index b71562cfa..7955e3acc 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryManagerTest.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryManagerTest.java @@ -18,8 +18,8 @@ import java.util.List; import junit.framework.TestCase; +import org.eclipse.mylar.internal.tasks.core.RepositoryTaskHandleUtil; import org.eclipse.mylar.tasks.core.AbstractRepositoryConnector; -import org.eclipse.mylar.tasks.core.AbstractRepositoryTask; import org.eclipse.mylar.tasks.core.TaskRepository; import org.eclipse.mylar.tasks.core.TaskRepositoryManager; import org.eclipse.mylar.tasks.tests.connector.MockRepositoryConnector; @@ -58,9 +58,9 @@ public class TaskRepositoryManagerTest extends TestCase { public void testHandles() { String url = "http://foo.bar"; String id = "123"; - String handle = AbstractRepositoryTask.getHandle(url, id); - assertEquals(url, AbstractRepositoryTask.getRepositoryUrl(handle)); - assertEquals(id, AbstractRepositoryTask.getTaskId(handle)); + String handle = RepositoryTaskHandleUtil.getHandle(url, id); + assertEquals(url, RepositoryTaskHandleUtil.getRepositoryUrl(handle)); + assertEquals(id, RepositoryTaskHandleUtil.getTaskId(handle)); // assertEquals(123, AbstractRepositoryTask.getTaskIdAsInt(handle)); } diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskTest.java index 10b418aea..6e883600e 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskTest.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskTest.java @@ -33,19 +33,19 @@ public class TaskTest extends TestCase { public void testUrl() { Task task = new Task("handle", "label", true); - task.setUrl("http://eclipse.org/mylar/doc.php"); + task.setTaskUrl("http://eclipse.org/mylar/doc.php"); assertTrue(task.hasValidUrl()); - task.setUrl("http://"); + task.setTaskUrl("http://"); assertFalse(task.hasValidUrl()); - task.setUrl("https://"); + task.setTaskUrl("https://"); assertFalse(task.hasValidUrl()); - task.setUrl(""); + task.setTaskUrl(""); assertFalse(task.hasValidUrl()); - task.setUrl(null); + task.setTaskUrl(null); assertFalse(task.hasValidUrl()); } diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockQueryHit.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockQueryHit.java index 5d4497312..acd566886 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockQueryHit.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockQueryHit.java @@ -24,7 +24,7 @@ public class MockQueryHit extends AbstractQueryHit { @Override protected AbstractRepositoryTask createTask() { - return new MockRepositoryTask(AbstractRepositoryTask.getHandle(repositoryUrl, id)); + return new MockRepositoryTask(repositoryUrl, id); } } diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryConnector.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryConnector.java index 50be0f980..d8c898306 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryConnector.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryConnector.java @@ -37,7 +37,7 @@ public class MockRepositoryConnector extends AbstractRepositoryConnector { public static final String REPOSITORY_KIND = "mock"; - public static final String REPOSITORY_URL = "http://mockrepository.com"; + public static final String REPOSITORY_URL = "http://mockrepository.test"; @Override public boolean canCreateNewTask(TaskRepository repository) { diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryTask.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryTask.java index c44c2f4ce..818f59726 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryTask.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryTask.java @@ -20,10 +20,15 @@ public class MockRepositoryTask extends AbstractRepositoryTask { private String ownerId; - public MockRepositoryTask(String handle) { - super(handle, "label for " + handle, true); + public MockRepositoryTask(String taskId) { + super(MockRepositoryConnector.REPOSITORY_URL, taskId, "label for " + taskId, true); } + public MockRepositoryTask(String repositoryUrl, String taskId) { + super(repositoryUrl, taskId, "label for " + taskId, true); + } + + @Override public String getRepositoryKind() { return "mock"; diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/RepositoryTaskDecorator.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/RepositoryTaskDecorator.java index f8de0f2da..f0ede2eb0 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/RepositoryTaskDecorator.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/RepositoryTaskDecorator.java @@ -70,7 +70,7 @@ public class RepositoryTaskDecorator implements ILightweightLabelDecorator { ITask correspondingTask = ((AbstractQueryHit) element).getCorrespondingTask(); decorate(correspondingTask, decoration); } else if (element instanceof ITask) { - String url = ((ITask) element).getUrl(); + String url = ((ITask) element).getTaskUrl(); if (url != null && !url.trim().equals("") && !url.equals("http://")) { decoration.addOverlay(TaskListImages.OVERLAY_WEB, IDecoration.BOTTOM_LEFT); } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CopyTaskDetailsAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CopyTaskDetailsAction.java index 6609b7d9a..83f7e6cfb 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CopyTaskDetailsAction.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/CopyTaskDetailsAction.java @@ -69,12 +69,12 @@ public class CopyTaskDetailsAction extends BaseSelectionListenerAction { } if (task != null) { if (task instanceof AbstractRepositoryTask) { - text += ((AbstractRepositoryTask)task).getIdLabel() + ": "; + text += ((AbstractRepositoryTask)task).getIdentifyingLabel() + ": "; } text += task.getSummary(); if (task.hasValidUrl()) { - text += "\n" + task.getUrl(); + text += "\n" + task.getTaskUrl(); } } else { text += ((AbstractQueryHit)object).getSummary(); diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTaskAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTaskAction.java index 673756fc2..e8b10cbac 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTaskAction.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenTaskAction.java @@ -60,7 +60,7 @@ public class OpenTaskAction extends ActionDelegate implements IWorkbenchWindowAc ITask task = (ITask) result; if (dlg.getOpenInBrowser()) { if (task.hasValidUrl()) { - TasksUiUtil.openBrowser(task.getUrl()); + TasksUiUtil.openBrowser(task.getTaskUrl()); TasksUiPlugin.getTaskListManager().getTaskActivationHistory().addTask(task); } } else { @@ -73,7 +73,7 @@ public class OpenTaskAction extends ActionDelegate implements IWorkbenchWindowAc if (task != null) { if (dlg.getOpenInBrowser()) { if (task.hasValidUrl()) { - TasksUiUtil.openBrowser(task.getUrl()); + TasksUiUtil.openBrowser(task.getTaskUrl()); TasksUiPlugin.getTaskListManager().getTaskActivationHistory().addTask(task); } } else { diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenWithBrowserAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenWithBrowserAction.java index 82dffc1ae..2d0c9aea7 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenWithBrowserAction.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/OpenWithBrowserAction.java @@ -50,7 +50,7 @@ public class OpenWithBrowserAction extends BaseSelectionListenerAction { if (selectedObject instanceof ITask) { ITask task = (ITask)selectedObject; if (task != null && task.hasValidUrl()) { - urlString = task.getUrl(); + urlString = task.getTaskUrl(); } } else if (selectedObject instanceof AbstractQueryHit) { AbstractQueryHit hit = (AbstractQueryHit) selectedObject; diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskSelectionDialog.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskSelectionDialog.java index e51e471a8..cf7b0d3e5 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskSelectionDialog.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskSelectionDialog.java @@ -27,10 +27,10 @@ import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerComparator; import org.eclipse.jface.viewers.ViewerFilter; +import org.eclipse.mylar.internal.tasks.core.RepositoryTaskHandleUtil; import org.eclipse.mylar.internal.tasks.ui.views.TaskElementLabelProvider; import org.eclipse.mylar.tasks.core.AbstractQueryHit; import org.eclipse.mylar.tasks.core.AbstractRepositoryQuery; -import org.eclipse.mylar.tasks.core.AbstractRepositoryTask; import org.eclipse.mylar.tasks.core.ITask; import org.eclipse.mylar.tasks.core.ITaskListElement; import org.eclipse.mylar.tasks.core.TaskList; @@ -86,7 +86,7 @@ public class TaskSelectionDialog extends SelectionStatusDialog { } if (element instanceof ITask) { ITask task = (ITask) element; - String taskString = AbstractRepositoryTask.getTaskId(task.getHandleIdentifier()) + ": " + String taskString = RepositoryTaskHandleUtil.getTaskId(task.getHandleIdentifier()) + ": " + task.getSummary(); return pattern.matcher(taskString).find(); } else if (element instanceof AbstractQueryHit) { diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/RemoteTaskSelectionDialog.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/RemoteTaskSelectionDialog.java index e942745c5..f71e1aea6 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/RemoteTaskSelectionDialog.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/commands/RemoteTaskSelectionDialog.java @@ -135,7 +135,7 @@ public class RemoteTaskSelectionDialog extends SelectionStatusDialog { return false; } AbstractRepositoryTask task = (AbstractRepositoryTask) element; - String taskId = task.getIdLabel(); + String taskId = task.getIdentifyingLabel(); for (String id : selectedIds) { if (id.equals(taskId)) { return true; diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskPlanningEditor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskPlanningEditor.java index f5ce61a72..2b5ad959c 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskPlanningEditor.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskPlanningEditor.java @@ -233,7 +233,7 @@ public class TaskPlanningEditor extends TaskFormPage { TasksUiPlugin.getTaskListManager().getTaskList().renameTask((Task) task, label); // TODO: refactor mutation into TaskList? - task.setUrl(issueReportURL.getText()); + task.setTaskUrl(issueReportURL.getText()); String priorityDescription = priorityCombo.getItem(priorityCombo.getSelectionIndex()); PriorityLevel level = PriorityLevel.fromDescription(priorityDescription); if (level != null) { @@ -485,7 +485,7 @@ public class TaskPlanningEditor extends TaskFormPage { GridData urlGridData = new GridData(GridData.FILL_HORIZONTAL); urlComposite.setLayoutData(urlGridData); - issueReportURL = toolkit.createText(urlComposite, task.getUrl(), SWT.NONE); + issueReportURL = toolkit.createText(urlComposite, task.getTaskUrl(), SWT.NONE); GridData gridLayout = new GridData(GridData.FILL_HORIZONTAL); issueReportURL.setLayoutData(gridLayout); diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/planner/TaskActivityEditorPart.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/planner/TaskActivityEditorPart.java index c0f340bdb..4621dfb16 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/planner/TaskActivityEditorPart.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/planner/TaskActivityEditorPart.java @@ -744,7 +744,7 @@ public class TaskActivityEditorPart extends EditorPart { writer.write("<td width=\"59\">ICON</td><td width=\"55\">" + currentTask.getPriority() + "</td><td width=\"495\">"); if (currentTask.hasValidUrl()) { - writer.write("<a href='" + currentTask.getUrl() + "'>" + currentTask.getSummary() + "</a>"); + writer.write("<a href='" + currentTask.getTaskUrl() + "'>" + currentTask.getSummary() + "</a>"); } else { writer.write(currentTask.getSummary()); } @@ -801,7 +801,7 @@ public class TaskActivityEditorPart extends EditorPart { + "</td><td width=\"495\">"); if (currentTask.hasValidUrl()) { - writer.write("<a href='" + currentTask.getUrl() + "'>" + currentTask.getSummary() + "</a>"); + writer.write("<a href='" + currentTask.getTaskUrl() + "'>" + currentTask.getSummary() + "</a>"); } else { writer.write(currentTask.getSummary()); } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskActivityLabelProvider.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskActivityLabelProvider.java index d09dea304..907cf0fa4 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskActivityLabelProvider.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskActivityLabelProvider.java @@ -21,6 +21,7 @@ import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.mylar.core.MylarStatusHandler; import org.eclipse.mylar.internal.core.util.DateUtil; +import org.eclipse.mylar.internal.tasks.core.RepositoryTaskHandleUtil; import org.eclipse.mylar.internal.tasks.ui.TaskListColorsAndFonts; import org.eclipse.mylar.internal.tasks.ui.TaskListImages; import org.eclipse.mylar.tasks.core.AbstractRepositoryTask; @@ -76,7 +77,7 @@ public class TaskActivityLabelProvider extends DecoratingLabelProvider implement switch (columnIndex) { case 2: if(task instanceof AbstractRepositoryTask) { - return AbstractRepositoryTask.getTaskId(task.getHandleIdentifier())+": "+task.getSummary(); + return RepositoryTaskHandleUtil.getTaskId(task.getHandleIdentifier())+": "+task.getSummary(); } else { return task.getSummary(); } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskElementLabelProvider.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskElementLabelProvider.java index 88446fc3c..14afce5ae 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskElementLabelProvider.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskElementLabelProvider.java @@ -16,6 +16,7 @@ import java.util.regex.Pattern; import org.eclipse.jface.viewers.IColorProvider; import org.eclipse.jface.viewers.IFontProvider; import org.eclipse.jface.viewers.LabelProvider; +import org.eclipse.mylar.internal.tasks.core.RepositoryTaskHandleUtil; import org.eclipse.mylar.internal.tasks.ui.ITaskHighlighter; import org.eclipse.mylar.internal.tasks.ui.TaskListColorsAndFonts; import org.eclipse.mylar.internal.tasks.ui.TaskListImages; @@ -125,14 +126,14 @@ public class TaskElementLabelProvider extends LabelProvider implements IColorPro } else if (object instanceof AbstractRepositoryTask) { AbstractRepositoryTask task = (AbstractRepositoryTask) object; if (task.getSummary() == null) { - if (task.getIdLabel() != null) { - return task.getIdLabel() + NO_SUMMARY_AVAILABLE; + if (task.getIdentifyingLabel() != null) { + return task.getIdentifyingLabel() + NO_SUMMARY_AVAILABLE; } else { - return AbstractRepositoryTask.getTaskId(task.getHandleIdentifier()) + NO_SUMMARY_AVAILABLE; + return RepositoryTaskHandleUtil.getTaskId(task.getHandleIdentifier()) + NO_SUMMARY_AVAILABLE; } } else if (!pattern.matcher(task.getSummary()).matches()) { - if (task.getIdLabel() != null) { - return task.getIdLabel() + ": " + task.getSummary(); + if (task.getIdentifyingLabel() != null) { + return task.getIdentifyingLabel() + ": " + task.getSummary(); } else { return task.getSummary(); } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDropAdapter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDropAdapter.java index 43518d5d4..f35d648b5 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDropAdapter.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDropAdapter.java @@ -180,7 +180,7 @@ public class TaskListDropAdapter extends ViewerDropAdapter { } newTask.setPriority(Task.PriorityLevel.P3.toString()); - newTask.setUrl(url); + newTask.setTaskUrl(url); // NOTE: setting boolean param as false so that we go directly to the // browser tab as with a previously-created task diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListTableSorter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListTableSorter.java index dc885cdee..2a0ad5a18 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListTableSorter.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListTableSorter.java @@ -108,15 +108,15 @@ public class TaskListTableSorter extends ViewerSorter { if (element instanceof AbstractQueryHit) { AbstractRepositoryTask task1 = ((AbstractQueryHit)element).getCorrespondingTask(); - if (task1 != null && task1.getIdLabel() != null) { - summary = task1.getIdLabel() + ": " + summary; + if (task1 != null && task1.getIdentifyingLabel() != null) { + summary = task1.getIdentifyingLabel() + ": " + summary; } else { summary = ((AbstractQueryHit)element).getIdLabel() + ": " + summary; } } else if (element instanceof AbstractRepositoryTask) { AbstractRepositoryTask task1 = (AbstractRepositoryTask)element; - if (task1.getIdLabel() != null) { - summary = task1.getIdLabel() + ": " + summary; + if (task1.getIdentifyingLabel() != null) { + summary = task1.getIdentifyingLabel() + ": " + summary; } } return summary; diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/OpenRepositoryTaskJob.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/OpenRepositoryTaskJob.java index 81db176c1..3dbb46e29 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/OpenRepositoryTaskJob.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/OpenRepositoryTaskJob.java @@ -18,9 +18,9 @@ import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.mylar.core.MylarStatusHandler; +import org.eclipse.mylar.internal.tasks.core.RepositoryTaskHandleUtil; import org.eclipse.mylar.internal.tasks.ui.TaskListPreferenceConstants; import org.eclipse.mylar.tasks.core.AbstractRepositoryConnector; -import org.eclipse.mylar.tasks.core.AbstractRepositoryTask; import org.eclipse.mylar.tasks.core.ITaskDataHandler; import org.eclipse.mylar.tasks.core.RepositoryTaskData; import org.eclipse.mylar.tasks.core.TaskRepository; @@ -83,9 +83,10 @@ public class OpenRepositoryTaskJob extends Job { RepositoryTaskData downloadedTaskData = null; downloadedTaskData = offlineHandler.getTaskData(repository, taskId); if (downloadedTaskData != null) { - TasksUiPlugin.getDefault().getTaskDataManager().push(downloadedTaskData); + TasksUiPlugin.getDefault().getTaskDataManager().push(RepositoryTaskHandleUtil.getHandle(repository.getUrl(), taskId), + downloadedTaskData); } - openEditor(repository, AbstractRepositoryTask.getHandle(repository.getUrl(), taskId), + openEditor(repository, RepositoryTaskHandleUtil.getHandle(repository.getUrl(), taskId), downloadedTaskData); } else { PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() { diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/RepositorySynchronizationManager.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/RepositorySynchronizationManager.java index d004b14da..6117823ff 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/RepositorySynchronizationManager.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/RepositorySynchronizationManager.java @@ -8,7 +8,6 @@ package org.eclipse.mylar.tasks.ui; -import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.HashSet; @@ -277,11 +276,11 @@ public class RepositorySynchronizationManager { TaskDataManager dataManager = TasksUiPlugin.getDefault().getTaskDataManager(); dataManager.discardEdits(repositoryTask.getHandleIdentifier()); // push twice so we don't see our own changes - TasksUiPlugin.getDefault().getTaskDataManager().push(newTaskData); + TasksUiPlugin.getDefault().getTaskDataManager().push(repositoryTask.getHandleIdentifier(), newTaskData); } else if (checkHasIncoming(repositoryTask, newTaskData)) { status = RepositoryTaskSyncState.CONFLICT; } - TasksUiPlugin.getDefault().getTaskDataManager().push(newTaskData); + TasksUiPlugin.getDefault().getTaskDataManager().push(repositoryTask.getHandleIdentifier(), newTaskData); break; case CONFLICT: @@ -289,14 +288,14 @@ public class RepositorySynchronizationManager { case INCOMING: // only most recent incoming will be displayed if two // sequential incoming's /conflicts happen - TasksUiPlugin.getDefault().getTaskDataManager().replace(newTaskData); + TasksUiPlugin.getDefault().getTaskDataManager().replace(repositoryTask.getHandleIdentifier(), newTaskData); repositoryTask.setNotified(false); break; case SYNCHRONIZED: if (checkHasIncoming(repositoryTask, newTaskData)) { status = RepositoryTaskSyncState.INCOMING; } - TasksUiPlugin.getDefault().getTaskDataManager().push(newTaskData); + TasksUiPlugin.getDefault().getTaskDataManager().push(repositoryTask.getHandleIdentifier(), newTaskData); break; } @@ -366,15 +365,6 @@ public class RepositorySynchronizationManager { // return true; } - /** non-final for testing purposes */ - protected void removeOfflineTaskData(RepositoryTaskData bug) { - if (bug == null) - return; - - ArrayList<RepositoryTaskData> bugList = new ArrayList<RepositoryTaskData>(); - bugList.add(bug); - TasksUiPlugin.getDefault().getTaskDataManager().remove(bugList); - } /** * @param repositoryTask - diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/SynchronizeQueryJob.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/SynchronizeQueryJob.java index 9eefc6e56..941403e00 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/SynchronizeQueryJob.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/SynchronizeQueryJob.java @@ -201,7 +201,7 @@ class SynchronizeQueryJob extends Job { if (hit.getCorrespondingTask() != null) { hit.getCorrespondingTask().setTaskData(taskData); } - TasksUiPlugin.getDefault().getTaskDataManager().push(taskData); + TasksUiPlugin.getDefault().getTaskDataManager().push(hit.getHandleIdentifier(), taskData); } monitor.worked(1); } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/SynchronizeTaskJob.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/SynchronizeTaskJob.java index 5e00c2257..78be1c144 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/SynchronizeTaskJob.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/SynchronizeTaskJob.java @@ -20,6 +20,7 @@ import org.eclipse.core.runtime.OperationCanceledException; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.mylar.core.MylarStatusHandler; +import org.eclipse.mylar.internal.tasks.core.RepositoryTaskHandleUtil; import org.eclipse.mylar.internal.tasks.ui.TaskListImages; import org.eclipse.mylar.tasks.core.AbstractRepositoryConnector; import org.eclipse.mylar.tasks.core.AbstractRepositoryTask; @@ -116,7 +117,7 @@ class SynchronizeTaskJob extends Job { TasksUiPlugin.getTaskListManager().getTaskList().notifyLocalInfoChanged(repositoryTask); ITaskDataHandler taskDataHandler = connector.getTaskDataHandler(); if (taskDataHandler != null) { - String taskId = AbstractRepositoryTask.getTaskId(repositoryTask.getHandleIdentifier()); + String taskId = RepositoryTaskHandleUtil.getTaskId(repositoryTask.getHandleIdentifier()); RepositoryTaskData downloadedTaskData = taskDataHandler.getTaskData(repository, taskId); if (downloadedTaskData != null) { diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskListManager.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskListManager.java index 6f5fc9a30..c13bd74fc 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskListManager.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskListManager.java @@ -36,6 +36,7 @@ import org.eclipse.mylar.context.core.IMylarContextListener; import org.eclipse.mylar.context.core.IMylarElement; import org.eclipse.mylar.core.MylarStatusHandler; import org.eclipse.mylar.internal.context.core.MylarContextManager; +import org.eclipse.mylar.internal.tasks.core.RepositoryTaskHandleUtil; import org.eclipse.mylar.internal.tasks.core.WebTask; import org.eclipse.mylar.internal.tasks.ui.TaskListPreferenceConstants; import org.eclipse.mylar.internal.tasks.ui.WorkspaceAwareContextStore; @@ -582,12 +583,12 @@ public class TaskListManager implements IPropertyChangeListener { try { storedHandle = URLDecoder.decode(file.getName().substring(0, dotIndex), MylarContextManager.CONTEXT_FILENAME_ENCODING); - int delimIndex = storedHandle.lastIndexOf(AbstractRepositoryTask.HANDLE_DELIM); + int delimIndex = storedHandle.lastIndexOf(RepositoryTaskHandleUtil.HANDLE_DELIM); if (delimIndex != -1) { String storedUrl = storedHandle.substring(0, delimIndex); if (oldUrl.equals(storedUrl)) { - String id = AbstractRepositoryTask.getTaskId(storedHandle); - String newHandle = AbstractRepositoryTask.getHandle(newUrl, id); + String id = RepositoryTaskHandleUtil.getTaskId(storedHandle); + String newHandle = RepositoryTaskHandleUtil.getHandle(newUrl, id); File newFile = ContextCorePlugin.getContextManager().getFileForContext(newHandle); file.renameTo(newFile); } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiUtil.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiUtil.java index 4977765c3..bd9494c06 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiUtil.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiUtil.java @@ -117,8 +117,7 @@ public class TasksUiUtil { public static boolean openRepositoryTask(TaskRepository repository, String taskId) { boolean opened = false; - ITask task = TasksUiPlugin.getTaskListManager().getTaskList().getTask( - AbstractRepositoryTask.getHandle(repository.getUrl(), taskId)); + ITask task = TasksUiPlugin.getTaskListManager().getTaskList().getTask(repository.getUrl(), taskId); if (task != null) { TasksUiUtil.refreshAndOpenTaskListElement(task); opened = true; @@ -138,14 +137,14 @@ public class TasksUiUtil { boolean opened = false; ITask task = null; if (taskId != null) { - String handle = AbstractRepositoryTask.getHandle(repositoryUrl, taskId); - task = TasksUiPlugin.getTaskListManager().getTaskList().getTask(handle); +// String handle = AbstractRepositoryTask.getHandle(repositoryUrl, taskId); + task = TasksUiPlugin.getTaskListManager().getTaskList().getTask(repositoryUrl, taskId); } if (task == null) { // search for it for (ITask currTask : TasksUiPlugin.getTaskListManager().getTaskList().getAllTasks()) { if (currTask instanceof AbstractRepositoryTask) { - String currUrl = ((AbstractRepositoryTask) currTask).getUrl(); + String currUrl = ((AbstractRepositoryTask) currTask).getTaskUrl(); if (currUrl != null && !currUrl.equals("") && currUrl.equals(fullUrl)) { task = currTask; break; diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractRepositoryTaskEditor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractRepositoryTaskEditor.java index a7ac466fd..3d48a3180 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractRepositoryTaskEditor.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractRepositoryTaskEditor.java @@ -1246,7 +1246,7 @@ public abstract class AbstractRepositoryTaskEditor extends TaskFormPage { Button addAttachmentButton = toolkit.createButton(attachmentsComposite, "Attach File...", SWT.PUSH); ITask task = TasksUiPlugin.getTaskListManager().getTaskList().getTask( - AbstractRepositoryTask.getHandle(repository.getUrl(), taskData.getId())); + repository.getUrl(), taskData.getId()); if (task == null) { addAttachmentButton.setEnabled(false); } @@ -1258,7 +1258,7 @@ public abstract class AbstractRepositoryTaskEditor extends TaskFormPage { public void widgetSelected(SelectionEvent e) { ITask task = TasksUiPlugin.getTaskListManager().getTaskList().getTask( - AbstractRepositoryTask.getHandle(repository.getUrl(), taskData.getId())); + repository.getUrl(), taskData.getId()); if (!(task instanceof AbstractRepositoryTask)) { // Should not happen return; @@ -1367,7 +1367,7 @@ public abstract class AbstractRepositoryTaskEditor extends TaskFormPage { if (textTransfer.isSupportedType(event.currentDataType)) { String text = (String) event.data; ITask task = TasksUiPlugin.getTaskListManager().getTaskList().getTask( - AbstractRepositoryTask.getHandle(repository.getUrl(), taskData.getId())); + repository.getUrl(), taskData.getId()); if (!(task instanceof AbstractRepositoryTask)) { // Should not happen return; @@ -1383,7 +1383,7 @@ public abstract class AbstractRepositoryTaskEditor extends TaskFormPage { String[] files = (String[]) event.data; if (files.length > 0) { ITask task = TasksUiPlugin.getTaskListManager().getTaskList().getTask( - AbstractRepositoryTask.getHandle(repository.getUrl(), taskData.getId())); + repository.getUrl(), taskData.getId()); if (!(task instanceof AbstractRepositoryTask)) { // Should not happen return; @@ -1548,7 +1548,7 @@ public abstract class AbstractRepositoryTaskEditor extends TaskFormPage { protected void addCCList(Composite attributesComposite) { RepositoryTaskAttribute addCCattribute = taskData.getAttribute(RepositoryTaskAttribute.NEW_CC); - if(addCCattribute == null) { + if (addCCattribute == null) { // TODO: remove once TRAC is priming taskData with NEW_CC attribute taskData.setAttributeValue(RepositoryTaskAttribute.NEW_CC, ""); addCCattribute = taskData.getAttribute(RepositoryTaskAttribute.NEW_CC); @@ -1829,7 +1829,7 @@ public abstract class AbstractRepositoryTaskEditor extends TaskFormPage { */ protected void addActionButtons(Composite buttonComposite) { ITask task = TasksUiPlugin.getTaskListManager().getTaskList().getTask( - AbstractRepositoryTask.getHandle(repository.getUrl(), taskData.getId())); + repository.getUrl(), taskData.getId()); if (attachContext && task != null) { addAttachContextButton(buttonComposite, task); } @@ -2552,7 +2552,7 @@ public abstract class AbstractRepositoryTaskEditor extends TaskFormPage { } } else { modifiedTask = (AbstractRepositoryTask) TasksUiPlugin.getTaskListManager().getTaskList() - .getTask(AbstractRepositoryTask.getHandle(repository.getUrl(), taskData.getId())); + .getTask(repository.getUrl(), taskData.getId()); } // Attach context if required diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/RepositoryTaskEditorInput.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/RepositoryTaskEditorInput.java index 869bad234..dda558e80 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/RepositoryTaskEditorInput.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/RepositoryTaskEditorInput.java @@ -10,6 +10,7 @@ *******************************************************************************/ package org.eclipse.mylar.tasks.ui.editors; +import org.eclipse.mylar.internal.tasks.core.RepositoryTaskHandleUtil; import org.eclipse.mylar.tasks.core.AbstractRepositoryTask; import org.eclipse.mylar.tasks.core.ITask; import org.eclipse.mylar.tasks.core.TaskRepository; @@ -29,7 +30,7 @@ public class RepositoryTaskEditorInput extends AbstractTaskEditorInput { public RepositoryTaskEditorInput(TaskRepository repository, String handle, String taskUrl) { super(repository, handle); - this.id = AbstractRepositoryTask.getTaskId(handle); + this.id = RepositoryTaskHandleUtil.getTaskId(handle); this.url = taskUrl; ITask task = TasksUiPlugin.getTaskListManager().getTaskList().getTask(handle); if (task != null && task instanceof AbstractRepositoryTask) { @@ -43,7 +44,7 @@ public class RepositoryTaskEditorInput extends AbstractTaskEditorInput { public String getName() { if(repositoryTask != null) { - String idLabel = repositoryTask.getIdLabel(); + String idLabel = repositoryTask.getIdentifyingLabel(); String label = ""; if (idLabel != null) { diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditor.java index ea3f41b24..f88b27151 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditor.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditor.java @@ -177,10 +177,10 @@ public class TaskEditor extends FormEditor { if (getEditorInput() instanceof RepositoryTaskEditorInput) { url = ((RepositoryTaskEditorInput) getEditorInput()).getUrl(); if (url == null) { - url = task.getUrl(); + url = task.getTaskUrl(); } - } else if (task != null && task.getUrl().length() > 9) { - url = task.getUrl(); + } else if (task != null && task.getTaskUrl().length() > 9) { + url = task.getTaskUrl(); } return url; } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditorInput.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditorInput.java index 5a05bb518..4f328dd3c 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditorInput.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditorInput.java @@ -14,6 +14,7 @@ package org.eclipse.mylar.tasks.ui.editors; import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.mylar.internal.tasks.core.RepositoryTaskHandleUtil; import org.eclipse.mylar.internal.tasks.ui.editors.TaskEditorInputFactory; import org.eclipse.mylar.tasks.core.AbstractRepositoryTask; import org.eclipse.mylar.tasks.core.ITask; @@ -45,7 +46,7 @@ public class TaskEditorInput implements IEditorInput, IPersistableElement { private void init(ITask task) { this.task = task; - id = AbstractRepositoryTask.getTaskId(task.getHandleIdentifier()); + id = RepositoryTaskHandleUtil.getTaskId(task.getHandleIdentifier()); label = truncateDescription(task.getSummary()); } @@ -130,7 +131,7 @@ public class TaskEditorInput implements IEditorInput, IPersistableElement { public String getLabel() { if (task instanceof AbstractRepositoryTask) { AbstractRepositoryTask repositoryTask = (AbstractRepositoryTask)task; - String idLabel = repositoryTask.getIdLabel(); + String idLabel = repositoryTask.getIdentifyingLabel(); label = ""; if (idLabel != null) { diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracAttachmentHandler.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracAttachmentHandler.java index 95ff7f42e..3480a0eeb 100644 --- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracAttachmentHandler.java +++ b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracAttachmentHandler.java @@ -63,7 +63,7 @@ public class TracAttachmentHandler implements IAttachmentHandler { try { ITracClient client = connector.getClientManager().getRepository(repository); - int id = Integer.parseInt(AbstractRepositoryTask.getTaskId(task.getHandleIdentifier())); + int id = Integer.parseInt(task.getTaskId()); byte[] data = readData(file); client.putAttachmentData(id, file.getName(), description, data); if (comment != null && comment.length() > 0) { diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracQueryHit.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracQueryHit.java index 4631624dc..e2493a205 100644 --- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracQueryHit.java +++ b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracQueryHit.java @@ -24,13 +24,13 @@ public class TracQueryHit extends AbstractQueryHit { super(taskList, repositoryUrl, description, id); } - public TracQueryHit(TaskList taskList, String handle) { - super(taskList, AbstractRepositoryTask.getRepositoryUrl(handle), "", AbstractRepositoryTask.getTaskId(handle)); - } +// public TracQueryHit(TaskList taskList, String handle) { +// super(taskList, RepositoryTaskHandleUtil.getRepositoryUrl(handle), "", RepositoryTaskHandleUtil.getTaskId(handle)); +// } @Override protected AbstractRepositoryTask createTask() { - TracTask newTask = new TracTask(getHandleIdentifier(), getSummary(), true); + TracTask newTask = new TracTask(this.getRepositoryUrl(), this.getId(), getSummary(), true); newTask.setPriority(priority); return newTask; } diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracRepositoryConnector.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracRepositoryConnector.java index e9524ef57..0a6dd3a94 100644 --- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracRepositoryConnector.java +++ b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracRepositoryConnector.java @@ -127,10 +127,10 @@ public class TracRepositoryConnector extends AbstractRepositoryConnector { @Override public void updateTask(TaskRepository repository, AbstractRepositoryTask repositoryTask) throws CoreException { if (repositoryTask instanceof TracTask) { - String id = AbstractRepositoryTask.getTaskId(repositoryTask.getHandleIdentifier()); +// String id = RepositoryTaskHandleUtil.getTaskId(repositoryTask.getHandleIdentifier()); try { ITracClient connection = getClientManager().getRepository(repository); - TracTicket ticket = connection.getTicket(Integer.parseInt(id)); + TracTicket ticket = connection.getTicket(Integer.parseInt(repositoryTask.getTaskId())); updateTaskDetails((TracTask) repositoryTask, ticket, false); } catch (Exception e) { throw new CoreException(TracCorePlugin.toStatus(e)); @@ -192,7 +192,7 @@ public class TracRepositoryConnector extends AbstractRepositoryConnector { Set<AbstractRepositoryTask> result = new HashSet<AbstractRepositoryTask>(); if (!ids.isEmpty()) { for (AbstractRepositoryTask task : tasks) { - Integer id = Integer.parseInt(AbstractRepositoryTask.getTaskId(task.getHandleIdentifier())); + Integer id = Integer.parseInt(task.getTaskId()); if (ids.contains(id)) { result.add(task); } @@ -207,34 +207,33 @@ public class TracRepositoryConnector extends AbstractRepositoryConnector { @Override - public AbstractRepositoryTask createTaskFromExistingKey(TaskRepository repository, String id) throws CoreException { - int bugId = -1; + public AbstractRepositoryTask createTaskFromExistingKey(TaskRepository repository, String taskId) throws CoreException { + int taskIdInt = -1; try { - bugId = Integer.parseInt(id); + taskIdInt = Integer.parseInt(taskId); } catch (NumberFormatException e) { throw new CoreException(new Status(IStatus.ERROR, TracCorePlugin.PLUGIN_ID, IStatus.OK, - "Invalid ticket id: " + id, e)); + "Invalid ticket id: " + taskId, e)); } - String handle = AbstractRepositoryTask.getHandle(repository.getUrl(), bugId); - +// String handle = AbstractRepositoryTask.getHandle(repository.getUrl(), bugId); TracTask task; - ITask existingTask = taskList.getTask(handle); + ITask existingTask = taskList.getTask(repository.getUrl(), taskId); if (existingTask instanceof TracTask) { task = (TracTask) existingTask; } else { - RepositoryTaskData taskData = taskDataHandler.downloadTaskData(repository, bugId); + RepositoryTaskData taskData = taskDataHandler.downloadTaskData(repository, taskIdInt); if (taskData != null) { - task = new TracTask(handle, getTicketDescription(taskData), true); + task = new TracTask(repository.getUrl(), taskId, getTicketDescription(taskData), true); task.setTaskData(taskData); taskList.addTask(task); } else { // repository does not support XML-RPC, fall back to web access try { ITracClient connection = getClientManager().getRepository(repository); - TracTicket ticket = connection.getTicket(Integer.parseInt(id)); + TracTicket ticket = connection.getTicket(taskIdInt); - task = new TracTask(handle, getTicketDescription(ticket), true); + task = new TracTask(repository.getUrl(), taskId, getTicketDescription(ticket), true); updateTaskDetails(task, ticket, false); taskList.addTask(task); } catch (Exception e) { @@ -256,13 +255,14 @@ public class TracRepositoryConnector extends AbstractRepositoryConnector { return clientManager; } - public TracTask createTask(TracTicket ticket, String handleIdentifier) { + public TracTask createTask(TracTicket ticket, String repositoryUrl, String taskId) { TracTask task; - ITask existingTask = taskList.getTask(handleIdentifier); +// String handleIdentifier = AbstractRepositoryTask.getHandle(repositoryUrl, taskId); + ITask existingTask = taskList.getTask(repositoryUrl, taskId); if (existingTask instanceof TracTask) { task = (TracTask) existingTask; } else { - task = new TracTask(handleIdentifier, getTicketDescription(ticket), true); + task = new TracTask(repositoryUrl, taskId, getTicketDescription(ticket), true); taskList.addTask(task); } return task; diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracTask.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracTask.java index fa0d36295..45de6b267 100644 --- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracTask.java +++ b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/TracTask.java @@ -125,11 +125,9 @@ public class TracTask extends AbstractRepositoryTask { } - public TracTask(String handle, String label, boolean newTask) { - super(handle, label, newTask); - - setUrl(AbstractRepositoryTask.getRepositoryUrl(handle) + ITracClient.TICKET_URL - + AbstractRepositoryTask.getTaskId(handle)); + public TracTask(String repositoryUrl, String id, String label, boolean newTask) { + super(repositoryUrl, id, label, newTask); + setTaskUrl(repositoryUrl + ITracClient.TICKET_URL + id); } @Override diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositoryConnectorTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositoryConnectorTest.java index 279a358f7..244fe2a61 100644 --- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositoryConnectorTest.java +++ b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositoryConnectorTest.java @@ -43,7 +43,6 @@ import org.eclipse.mylar.internal.trac.core.model.TracTicket.Key; import org.eclipse.mylar.internal.trac.ui.wizard.TracRepositorySettingsPage; import org.eclipse.mylar.tasks.core.AbstractQueryHit; import org.eclipse.mylar.tasks.core.AbstractRepositoryConnector; -import org.eclipse.mylar.tasks.core.AbstractRepositoryTask; import org.eclipse.mylar.tasks.core.ITask; import org.eclipse.mylar.tasks.core.QueryHitCollector; import org.eclipse.mylar.tasks.core.TaskList; @@ -137,7 +136,7 @@ public class TracRepositoryConnectorTest extends TestCase { assertNotNull(task); assertEquals(TracTask.class, task.getClass()); assertTrue(task.getSummary().contains("summary1")); - assertEquals(repository.getUrl() + ITracClient.TICKET_URL + id, task.getUrl()); + assertEquals(repository.getUrl() + ITracClient.TICKET_URL + id, task.getTaskUrl()); try { task = connector.createTaskFromExistingKey(repository, "does not exist"); @@ -218,13 +217,13 @@ public class TracRepositoryConnectorTest extends TestCase { ticket.putBuiltinValue(Key.SUMMARY, "mysummary"); ticket.putBuiltinValue(Key.TYPE, "mytype"); - TracTask task = new TracTask(AbstractRepositoryTask.getHandle(Constants.TEST_TRAC_010_URL, 123), "desc", true); - assertEquals(Constants.TEST_TRAC_010_URL + ITracClient.TICKET_URL + "123", task.getUrl()); + TracTask task = new TracTask(Constants.TEST_TRAC_010_URL, ""+123, "desc", true); + assertEquals(Constants.TEST_TRAC_010_URL + ITracClient.TICKET_URL + "123", task.getTaskUrl()); assertEquals("desc", task.getSummary()); connector.updateTaskDetails(task, ticket, false); - assertEquals(Constants.TEST_TRAC_010_URL + ITracClient.TICKET_URL + "123", task.getUrl()); - assertEquals("123", task.getIdLabel()); + assertEquals(Constants.TEST_TRAC_010_URL + ITracClient.TICKET_URL + "123", task.getTaskUrl()); + assertEquals("123", task.getIdentifyingLabel()); assertEquals("mysummary", task.getSummary()); assertEquals("P3", task.getPriority()); assertEquals("mytype", task.getTaskKind()); @@ -236,11 +235,11 @@ public class TracRepositoryConnectorTest extends TestCase { TracTicket ticket = new TracTicket(456); ticket.putBuiltinValue(Key.SUMMARY, "mysummary"); - TracTask task = new TracTask(AbstractRepositoryTask.getHandle(Constants.TEST_TRAC_010_URL, 456), "desc", true); + TracTask task = new TracTask(Constants.TEST_TRAC_010_URL, ""+456, "desc", true); connector.updateTaskDetails(task, ticket, false); - assertEquals(Constants.TEST_TRAC_010_URL + ITracClient.TICKET_URL + "456", task.getUrl()); - assertEquals("456", task.getIdLabel()); + assertEquals(Constants.TEST_TRAC_010_URL + ITracClient.TICKET_URL + "456", task.getTaskUrl()); + assertEquals("456", task.getIdentifyingLabel()); assertEquals("mysummary", task.getSummary()); assertEquals("P3", task.getPriority()); assertEquals(null, task.getTaskKind()); diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositoryQueryTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositoryQueryTest.java index c579ef192..0bad6ef83 100644 --- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositoryQueryTest.java +++ b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracRepositoryQueryTest.java @@ -22,7 +22,6 @@ import org.eclipse.mylar.internal.trac.core.TracRepositoryQuery; import org.eclipse.mylar.internal.trac.core.TracTask; import org.eclipse.mylar.internal.trac.core.model.TracSearch; import org.eclipse.mylar.internal.trac.core.model.TracSearchFilter; -import org.eclipse.mylar.tasks.core.AbstractRepositoryTask; import org.eclipse.mylar.tasks.core.TaskRepository; import org.eclipse.mylar.tasks.core.TaskRepositoryManager; import org.eclipse.mylar.tasks.ui.TasksUiPlugin; @@ -44,7 +43,7 @@ public class TracRepositoryQueryTest extends TestCase { TracRepositoryQuery query = new TracRepositoryQuery(repository.getUrl(), queryUrl, "description", TasksUiPlugin.getTaskListManager().getTaskList()); TasksUiPlugin.getTaskListManager().getTaskList().addQuery(query); - TracTask task = new TracTask(AbstractRepositoryTask.getHandle(Constants.TEST_TRAC_096_URL, 123), "desc", true); + TracTask task = new TracTask(Constants.TEST_TRAC_096_URL, ""+123, "desc", true); TasksUiPlugin.getTaskListManager().getTaskList().addTask(task); String oldUrl = repository.getUrl(); @@ -54,7 +53,7 @@ public class TracRepositoryQueryTest extends TestCase { assertEquals(newUrl, query.getRepositoryUrl()); assertEquals(newUrl + ITracClient.QUERY_URL + search.toUrl(), query.getUrl()); - assertEquals(newUrl + ITracClient.TICKET_URL + 123, task.getUrl()); + assertEquals(newUrl + ITracClient.TICKET_URL + 123, task.getTaskUrl()); } public void testGetFilterList() { diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracTaskExternalizer.java b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracTaskExternalizer.java index 4fda1306c..92172a94b 100644 --- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracTaskExternalizer.java +++ b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/TracTaskExternalizer.java @@ -12,6 +12,7 @@ package org.eclipse.mylar.internal.trac.ui; import org.eclipse.mylar.core.MylarStatusHandler; +import org.eclipse.mylar.internal.tasks.core.RepositoryTaskHandleUtil; import org.eclipse.mylar.internal.trac.core.TracQueryHit; import org.eclipse.mylar.internal.trac.core.TracRepositoryQuery; import org.eclipse.mylar.internal.trac.core.TracTask; @@ -85,7 +86,10 @@ public class TracTaskExternalizer extends DelegatingTaskExternalizer { throw new TaskExternalizationException("Description not stored for task"); } - TracTask task = new TracTask(handle, label, false); + String repositoryUrl = RepositoryTaskHandleUtil.getRepositoryUrl(handle); + String taskId = RepositoryTaskHandleUtil.getTaskId(handle); + + TracTask task = new TracTask(repositoryUrl, taskId, label, false); readTaskInfo(task, taskList, element, parent, category); return task; } @@ -201,7 +205,10 @@ public class TracTaskExternalizer extends DelegatingTaskExternalizer { throw new TaskExternalizationException("Handle not stored for bug report"); } - TracQueryHit hit = new TracQueryHit(taskList, handle); + String repositoryUrl = RepositoryTaskHandleUtil.getRepositoryUrl(handle); + String taskId = RepositoryTaskHandleUtil.getTaskId(handle); + + TracQueryHit hit = new TracQueryHit(taskList, repositoryUrl, "", taskId); // TODO move to DelegationTaskExternalizer if (element.hasAttribute(KEY_COMPLETE) && element.getAttribute(KEY_COMPLETE).compareTo(VAL_TRUE) == 0) { diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracTaskEditorFactory.java b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracTaskEditorFactory.java index cf7a53c27..1271011b2 100644 --- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracTaskEditorFactory.java +++ b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/editor/TracTaskEditorFactory.java @@ -69,7 +69,7 @@ public class TracTaskEditorFactory implements ITaskEditorFactory { TaskRepository repository = TasksUiPlugin.getRepositoryManager().getRepository(TracCorePlugin.REPOSITORY_KIND, tracTask.getRepositoryUrl()); try { - return new RepositoryTaskEditorInput(repository, tracTask.getHandleIdentifier(), tracTask.getUrl()); + return new RepositoryTaskEditorInput(repository, tracTask.getHandleIdentifier(), tracTask.getTaskUrl()); } catch (Exception e) { MylarStatusHandler.fail(e, "Could not create Trac editor input", true); } |