If your ids contain dashes or characters that may not be valid in filenames you can use TasksUtil.encode() and TasksUtil.decode() for encoding and decoding.
Steffen On Tue, Oct 19, 2010 at 8:36 AM, XuQing Tan <[email protected]> wrote: > > Why don't you make /Project/View/FolderA/FoderB/TASKID the task id? If > you don't want to show that in the UI you can set a key on the ITask > objects. > > hi, steffen > > unfortunately, i got the ERROR below, after i use the full path as the task > id... > > java.lang.RuntimeException: invalid handle for task, can not contain: -, > was: > /A1282-Project/A1282-View/A1282-Folder/99_Appl_SW-Data/Application_Code/eclipse?type=Task&StTaskNumber=3533 > at > org.eclipse.mylyn.internal.tasks.core.RepositoryTaskHandleUtil.getHandle(RepositoryTaskHandleUtil.java:25) > at > org.eclipse.mylyn.internal.tasks.core.RepositoryModel.getTaskHandle(RepositoryModel.java:121) > at > org.eclipse.mylyn.internal.tasks.core.RepositoryModel.createTask(RepositoryModel.java:69) > at > org.eclipse.mylyn.internal.tasks.core.sync.SynchronizeQueriesJob$TaskCollector.accept(SynchronizeQueriesJob.java:81) > > any suggestion? > > Thanks & Best Regards! > > /// > (. .) > --------ooO--(_)--Ooo-------- > | Nick Tan | > ----------------------------- > > > > On Tue, Oct 19, 2010 at 12:53 PM, Steffen Pingel > <[email protected]> wrote: >> >> > actually, i problem is the getTaskData signature only pass a String of >> > Task >> > ID, and TaskRepository object. >> > as this method supposed, i need retrieve the full task details from >> > server >> > for web/http access system like JIRA, bugzilla, Trac, etc. it won't be a >> > pb >> > since they all have a uniform query interface by TaskID >> > e.g. JIRA: http://hostname:port/TASKID >> > >> > but for StarTeam, tasks/CRs are stored under the folder, so the >> > pseudo-url: >> > hostname:port/Project/View/FolderA/FoderB/TASKID >> >> Why don't you make /Project/View/FolderA/FoderB/TASKID the task id? If >> you don't want to show that in the UI you can set a key on the ITask >> objects. >> >> >> If that is not feasible you could consider overriding >> >> AbstractRepositoryConnector.canSynchronizeTask() and return false. If >> >> you ensure that performQuery() always returns non partial task data >> >> you should still be able to leverage almost all functionality of the >> >> framework. One limitation is that looking up repository tasks by id >> >> will not work unless a task is already in the task list. >> > >> > Oh? could it be a case that I handle a Task ID, which passed as a >> > argument >> > by mylyn framework, but the corresponding task not in the task list? >> >> Yes, tasks do not necessarily have to be in the task list. You can >> open tasks directly from the repository. >> >> > One more thing, i'm considering use TasksUiPlugin.getTaskList() to >> > retrieve >> > the task list, and query task by id/key with the methods provided by >> > TaskList. >> > but one pb is TasksUiPlugin.getTaskList() depends on the Mylyn Task UI >> > plugin, but my code (RespositoryConnector) actually lay in a Core >> > plugin... >> >> I would not recommend that as it limits reuse of your connector in >> other contexts, e.g. in a headless application. >> >> Steffen >> >> -- >> Steffen Pingel >> Committer, http://eclipse.org/mylyn >> Senior Developer, http://tasktop.com >> _______________________________________________ >> mylyn-integrators mailing list >> [email protected] >> https://dev.eclipse.org/mailman/listinfo/mylyn-integrators > > > _______________________________________________ > mylyn-integrators mailing list > [email protected] > https://dev.eclipse.org/mailman/listinfo/mylyn-integrators > > -- Steffen Pingel Committer, http://eclipse.org/mylyn Senior Developer, http://tasktop.com _______________________________________________ mylyn-integrators mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/mylyn-integrators
