Complete Jazz API or building it
Hi,
Sorry for such a stupid question, but I am pretty new to Jazz and want to write a plugin that works on work items. My problem is that I cannot find any documentation showing which plugins and extension point or functions can be used to achieve this goal.
For example:
I want to fetch all WorkItem of the ProjectArea. How can I do this?
When trying to generate the JavaDoc from the source package I get about 100 errors. So this seems to be no solution either.
Again, Sorry for such a greenhorn question but I am a bit stuck.
Kim
Sorry for such a stupid question, but I am pretty new to Jazz and want to write a plugin that works on work items. My problem is that I cannot find any documentation showing which plugins and extension point or functions can be used to achieve this goal.
For example:
I want to fetch all WorkItem of the ProjectArea. How can I do this?
When trying to generate the JavaDoc from the source package I get about 100 errors. So this seems to be no solution either.
Again, Sorry for such a greenhorn question but I am a bit stuck.
Kim
3 answers
Hi Kim
Our Work Item API documentation is currently quite scarce, so your
question is absolutely legitimate.
A good first step is to familiarize yourself with the general Jazz terms
and programming model that the individual components like Work Item
adhere to:
https://jazz.net/learn/LearnItem.jsp?href=content/docs/platform-overview/index.html
Each component typically provides access to its functionality by its
Client Library. For Work Items, this is IWorkItemClient and
IAuditableClient.
Here's a snippet that queries all work items of a project area (this can
be a huge number of work items...):
Assuming that you have a project area handle:
IProjectAreaHandle projectArea= ...
Access the client libraries:
ITeamRepository repository= (ITeamRepository) projectArea.getOrigin();
IAuditableClient auditableClient= (IAuditableClient)
repository.getClientLibrary(IAuditableClient.class);
Create the query:
WorkItemQueryModel model= WorkItemQueryModel.ROOT;
IItemQuery query= IItemQuery.FACTORY.newInstance(model);
IPredicate predicate= model.projectArea()._eq(query.newItemHandleArg());
query.filter(predicate);
Execute the query:
ItemQueryIterator<IWorkItemHandle> iterator= new
ItemQueryIterator<IWorkItemHandle>(auditableClient, query, new Object[]
{ projectArea });
List<IWorkItem> workItems=
auditableClient.resolveAuditables(iterator.toList(monitor),
IWorkItem.SMALL_PROFILE, monitor);
This leaves you with a list of resolved work items which contain the
most commonly used attributes. If you need all attributes, use
IWorkItem.FULL_PROFILE instead (there is a performance penalty as more
data needs to be resolved and transferred).
If you need more information about writing Eclipse plug-ins, I would
highly recommend
"Contributing to Eclipse - Principles, Patterns and Plug-Ins" by Erich
Gamma and Kent Beck (Addison Wesley)
HTH,
Patrick
Our Work Item API documentation is currently quite scarce, so your
question is absolutely legitimate.
A good first step is to familiarize yourself with the general Jazz terms
and programming model that the individual components like Work Item
adhere to:
https://jazz.net/learn/LearnItem.jsp?href=content/docs/platform-overview/index.html
Each component typically provides access to its functionality by its
Client Library. For Work Items, this is IWorkItemClient and
IAuditableClient.
For example:
I want to fetch all WorkItem of the ProjectArea. How can I do this?
Here's a snippet that queries all work items of a project area (this can
be a huge number of work items...):
Assuming that you have a project area handle:
IProjectAreaHandle projectArea= ...
Access the client libraries:
ITeamRepository repository= (ITeamRepository) projectArea.getOrigin();
IAuditableClient auditableClient= (IAuditableClient)
repository.getClientLibrary(IAuditableClient.class);
Create the query:
WorkItemQueryModel model= WorkItemQueryModel.ROOT;
IItemQuery query= IItemQuery.FACTORY.newInstance(model);
IPredicate predicate= model.projectArea()._eq(query.newItemHandleArg());
query.filter(predicate);
Execute the query:
ItemQueryIterator<IWorkItemHandle> iterator= new
ItemQueryIterator<IWorkItemHandle>(auditableClient, query, new Object[]
{ projectArea });
List<IWorkItem> workItems=
auditableClient.resolveAuditables(iterator.toList(monitor),
IWorkItem.SMALL_PROFILE, monitor);
This leaves you with a list of resolved work items which contain the
most commonly used attributes. If you need all attributes, use
IWorkItem.FULL_PROFILE instead (there is a performance penalty as more
data needs to be resolved and transferred).
If you need more information about writing Eclipse plug-ins, I would
highly recommend
"Contributing to Eclipse - Principles, Patterns and Plug-Ins" by Erich
Gamma and Kent Beck (Addison Wesley)
HTH,
Patrick