Thank you for publishing your notes. However, it is hard to follow them due to very rough explanations. Until today I wasn't able to retrieve a task list from the server, even with using code out of the Trac connector.
For example, following problem crosses my way to a successful implementation of my connector: I can create a new query with my connector, but after the creation there is no action at all. Where can I see my created query and how do I manage to retrieve the task list? Kind regards, Robert -----Original Message----- From: Tom Bryan (tombry) [mailto:[EMAIL PROTECTED] Sent: Dienstag, 08. Juli 2008 14:53 To: Schenkenfelder Robert Subject: RE: [mylyn-integrators] Startup help for writing new connector Schenkenfelder Robert wrote on Tuesday, July 08, 2008 3:59 AM: > Thank you very much. That was a very good startup help, I can see my > connector now in the Task Repositories list. Excellent. > I hope I'm able to extend my beginning to a fully-functional read-only > connector (the ConSol integration isn't that easy I thought). > If I have further questions to Mylyn and connectors, I tell you. I've included below the rest of my step-by-step. I haven't reread this one for correctness, and at some point, I stopped taking notes. I hope to go back and complete it at some point and get all of this info up on the Mylyn wiki. Query repository and populate task list --------------------------------------- Now things get complicated. I thought that I could incrementally add functionality, but it seemed like I needed to get a bunch of interconnected things working at this stage to get anything else working in the UI. See the archives of the Mylyn-Integrators list for information on getting access to the Origo connector's source code. I used it in a couple of places as a simpler model to follow. The Jira and Bugzilla connectors were over-complicated for my needs in those cases. * To query the bug system, you need ** a class that can act as a client to some sort of API for the bug system (e.g., by calling a web service), ** a class that can act as a TaskDataHandler to shuffle the data among its various representations in code, Note that there is generally one connector per type of repository, but there may be multiple repositories for one repository type in the developer's repository list. For example, there may be the Eclipse.org bugzilla and a local bugzilla system. So, we share the RepositoryConnector, but the connector needs to keep track of separate clients for interacting with different repositories (especially if different repositories may require different client classes, depending on the repository software version, etc.). * In com.cisco.mytracker.mylyn.core plug-in, ** Create com.cisco.mytracker.mylyn.core.internal.MytrackerTaskDataHandler. ** Create com.cisco.mytracker.mylyn.core.internal.IMytrackerClient. ** Create com.cisco.mytracker.mylyn.core.internal.MytrackerServletClient implement IMytrackerClient. ** Add a map to MytrackerServletClient instances to com.cisco.mytracker.mylyn.core.internal.MytrackerRepositoryConnector. ** Add a MytrackerTaskDataHandler field to com.cisco.mytracker.mylyn.core.intenral.MytrackerRepositoryConnector. ** Create a MytrackerRepositoryConnector constructor to initialize these fields. ** Add a connector field and getter/setters to com.cisco.mytracker.mylyn.core.internal.MytrackerCorePlugin. ** Implement MytrackerRepositoryConnector.getClient. ** Do not implement createTask, yet, since we're read only, and we return false from canCreateNewTask(). An instance of AbstractRepositoryQuery represents one of the queries in the TaskList. That is, it is used to collect and organize tasks in the Task List view. A query corresponds to a search, which encapsulates the criteria actually used to search the repository and filter out only the tasks requested for that query. Plan - implement search, then query, then new/edit query wizards from connectorUi. Then hook the TaskDataHandler up with the search. * In com.cisco.mytracker.mylyn.core plug-in, ** Create com.cisco.mytracker.mylyn.core.internal.MytrackerQuery. ** Implement getRepositoryKind(). ** Create a reasonable constructor. ** The url from AbstractTaskContainer is optional: "optional URL corresponding to the web resource associated with this container." ** Since we'll mostly be working with ad hoc queries for this tracker, let's not try to create a corresponding query URL. While the web service call for a query will correspond to a URL, since that will change as MyTracker modifies its web services, we'll let the IMytrackerClient code generate the actual service URL corresponding to the query. ** Add a MytrackerSearch field and add a constructor that takes one. * In com.cisco.mytracker.mylyn.core plug-in, ** Create com.cisco.mytracker.mylyn.core.model.internal.MytrackerSearch. ** This implementation really depends on your particular repository and what data you need to carry for a search. * In com.cisco.mytracker.mylyn.core plug-in, ** Create com.cisco.mytracker.mylyn.core.internal.MytrackerTaskDataHandler. ** The task data handler holds a client factory. The repository connector holds the task data handler. ** The OrigoTaskDataHandler holds a back reference to the repository connector, but we don't plan to follow that model. ** Need to implement MytrackerTaskDataHandler.getTaskData. ** Follow Origo template, and implement an updateTaskDataFromMytracker method. * In com.cisco.mytracker.mylyn.core plug-in, ** Add a getMytrackerById method(String) to com.cisco.mytracker.mylyn.core.internal.IMytrackerClient. * In com.cisco.mytracker.mylyn.core plug-in, ** Create com.cisco.mytracker.mylyn.core.internal.MytrackerAttributeFactory. ** Implement.... * In com.cisco.mytracker.mylyn.core plug-in, ** Create com.cisco.mytracker.mylyn.core.internal.MytrackerException. -- Tom Bryan <[EMAIL PROTECTED]> Software Engineering Solutions (SES) Cisco Systems RTP, NC, USA _______________________________________________ mylyn-integrators mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/mylyn-integrators
