Jump to: navigation, search

Difference between revisions of "Mylyn/Incubator/Generic Industrial Connector"

(Plan)
(Using the source to create your own)
Line 146: Line 146:
 
= Using the source to create your own =
 
= Using the source to create your own =
  
==Configuring the SQL Connector using Ibatis==
+
==Configuring the Connector in its absolute bare essence==
 +
 
 +
If you have access to your task repository in your own homegrown persistence framework then you might want to know what exactly you have to implement to create a Mylyn connector. This is the 5 minutes DIY connector creation. Implements just one java class: [[Mylyn/Incubator/Generic SQL Connector/Configuring Industrial Connector using Nothing]]
 +
 
 +
==Configuring the Connector using Ibatis==
  
 
For detailed instructions on configuring a Industrial Generic SQL Connector see [[Mylyn/Incubator/Generic SQL Connector/Configuring Industrial Connector using Ibatis]]
 
For detailed instructions on configuring a Industrial Generic SQL Connector see [[Mylyn/Incubator/Generic SQL Connector/Configuring Industrial Connector using Ibatis]]
  
==Configuring the SQL Connector using JPA Persistence==
+
==Configuring the Connector using JPA Persistence==
  
 
For detailed instructions on configuring a Industrial Generic SQL Connector see [[Mylyn/Incubator/Generic SQL Connector/Configuring Industrial Connector using JPA]]
 
For detailed instructions on configuring a Industrial Generic SQL Connector see [[Mylyn/Incubator/Generic SQL Connector/Configuring Industrial Connector using JPA]]

Revision as of 12:12, 17 February 2009

This work is funded by Remain Software and Industrial-TSI.

This is a temp doc space for the generic SQL connector for mylyn.

Rationale and Use Cases

Provide Mylyn access to Tasks that are stored in a non-web repository, primarily a database.

This connector provides a simple basic interface to such a repository.

  • By defining only 12 SQL queries, you have access to all the Tasks in the database.
  • By adding another 6 SQL queries you have added support for Comments and Attachments

Use Case 0: personal cross workspace local task repository

When you have multiple workspace and use local tasks, you can only get at the tasks in the current workspace. There is also no facility for adding attachments or comments. Running a local Derby instance provides all of this in transparent manner.

Vote when this use case applies to you

Use Case 1: small development or web shops with home-grown tracker in database

Many small web or software development shops have created their own issue trackers or workflow systems that predate the ever wider acceptance of Eclipse as a platform. These usually have the data stored in a local database, accessible via lan via a custom application (Filemaker, MS Access) or a home built web frontend (LAMP).

It is not worthwile to them to build or purchase a full-fledged connector (yet), but they want access to the tasks in the convenient Mylyn way with lowest possible configuration effort.

Vote when this use case applies to you

Use Case 2: provide task like access to logged system/server exceptions stored in a database

Webservers and application servers can store their logs in a database instead of in a plain text file. Example: Writing Apache's Logs to MySQL

But who likes going over these logs or doing periodc queries on them. This connector can look in such log files and and a system operator can thus create easy queries looking at error types, source IP's server id's or string matches in the request URL.

The Mylyn notification pop up window and the task list will indicate where new issues occurred.

Vote when this use case applies to you

Team and Plan

Members

Maarten Meijer
Wim Jongman
Ahmed Aadel

Plan

Initial Request: bug 184532 Discussion: bug 223048

Current work is done using Apache Ibatis so that all configuration can be stored in the ibatis xml configuration files. Legal parameter sets for various fields can then be stored as pseudo queries.

Also create is a JPA Persisten implementation.

version 0.8.x (current)

  • separated Persistor interface
  • ibatis based connector:
    • Current work is done using Apache Ibatis so that all configuration can be stored in the ibatis xml configuration files.
    • Legal parameter sets for various fields can then be stored as pseudo queries.
  • JPA persistence based connector
    • use annotations in Java to define mapping

version 0.9.x

  • move connector.xml into an extension point schema
  • completer test coverage
  • auto setup/initialization of local Derby connector
  • do another Persistor implementation to test versatility: MS Excel, NNTP, ...

Architecture

IndustrialArchitecture.png


Generic Task Structure to map to any SQL DB

These are mainly the fields from AbstractTask

- repositoryUrl
- taskId
- owner
- summary
- priority (as P1, P2, P3, P4 or P5)
- completed
- completionDate (null is not completed)
- creationDate
- dueDate
- notes

Further more a generic Task can hold:

- a list of TaskComments and
- a list of TaskAttachments.

But how?

Task Context

Since the users of this connector are owners of the database (otherwise they would not be able to access it) it makes sense to create a new table that is keyed by task id and that holds a blob for the task context. In this way the task context can conveniently be dropped in this table. This could also be a setting in the connector.

Generic Query Structure to map to any SQL DB

There will be a Query window allowing (full text) selection on:

- taskId : match a specific ID
- owner : match a known owner from a list
- summary : match a string in a description
- priority (as P1, P2, P3, P4 or P5) : match one or more priorities
- completed : match true or false
- completionDate (null is not completed)  : match before, after and null
- creationDate  : match before, after and null
- dueDate  : match before, after and null
- notes : match a string in a description

and possibly:

- in the list of TaskComments and
- in the list of TaskAttachments.

Persistor interface description

TBD.

Getting the source or runtime

Update Site

We have created an update site to try this connector for 3.0.x and 2.3.x.

Create the update site reference as follows, using the above URL:

Industrial url.png

Then select that site:

Industrial update site.png

And make select the latest version plus the Ibatis SqlMap feature:

Industrial selection.png

Temporary SVN

The port of the generic SQL connector to Mylyn 3.0 will be at:

- svn://bugs.industrial-tsi.com/mylyn_gsc/trunk

The generic SQL connector for Mylyn 2.3.x will be at:

- svn://bugs.industrial-tsi.com/mylyn_gsc/branches/mylyn23x

Using the source to create your own

Configuring the Connector in its absolute bare essence

If you have access to your task repository in your own homegrown persistence framework then you might want to know what exactly you have to implement to create a Mylyn connector. This is the 5 minutes DIY connector creation. Implements just one java class: Mylyn/Incubator/Generic SQL Connector/Configuring Industrial Connector using Nothing

Configuring the Connector using Ibatis

For detailed instructions on configuring a Industrial Generic SQL Connector see Mylyn/Incubator/Generic SQL Connector/Configuring Industrial Connector using Ibatis

Configuring the Connector using JPA Persistence

For detailed instructions on configuring a Industrial Generic SQL Connector see Mylyn/Incubator/Generic SQL Connector/Configuring Industrial Connector using JPA

Screenshots