SPI - Service Provider Interface

Apache NetBeans Wiki Index

Note: These pages are being reviewed.

This document describes the basic SPI/API requirements requested by the needs of the bugtracking infrastructure and other dependent subsystems of the IDE.

For a Bugtracking plugin implementation it is essential to support the following functionality:

SPI: Service Provider Interface

Connector

Registration

register a Butracking plugin

Connector Information

provide basic information about a Bugtracking plugin - name, tooltip, icon, …​

Repository

provide functionality to manage Repository lifecycle

Create a Repository

create and validate a Bugtracking repository

Edit Repository Settings

edit and validate repository settings

Remove a Repository

remove a Bugtracking repository

Accessing Issues

Provide Issues from a Repository by:

provide Issues from a Repository based on a simple text criteria - match text with id or summary

By Issue ID

provide Issues from a Repository given by their id

Access Issues via Queries

provide Issues from a Repository given by a parametrised Queries

Query Management

provide functionality to manage Query lifecycle:

Create and Edit Queries

provide a Query editor component capable to to create, edit and rename Queries and to notify the IDE about the state of changes in the editor

Remove a Query

remove a Query associated with a Repository

List Queries

provide list of saved Queries associated with a Repository and notify about eventual changes in the saved queries list

Refresh a Query

execute the Query against the remote server and retrieve Issues matching the query criteria

List Issues

provide list of Issues returned by the last Query refresh

Issue Management

provide functionality to access and manipulate Issues:

Create and Edit Queries

provide an Issue Editor component capable to create and edit Issues and to notify about the state of changes in the editor

Basic Issue Information

provide basic issue information - id, summary, priority, finished state, relationship to other issues (parent/child), etc …​

Incoming Changes

(Not mandatory) provide status information about incoming issue changes

Refresh Issue

refresh the current Issue state from the remote server

Issue Scheduling

set and provide information about locally private and/or remote Issue scheduling. (Not mandatory.)

Offline Work

Persist Issue and Query state between IDE sessions. Notify and provide information about an Issues current local state. (Not mandatory.)

Outgoing Changes

provide status information about outgoing (local) issue changes

List local changes

provide list of locally changed issues

Submit

submit locally changed issues

API: Application Provider Interface

the bugtracking infrastructure will provide the following functionality for other subsystems to support:

List Repositories

provide a list of all existing repositories

Access Issues by Queries

provide a list of existing Queries for each Repository and a list of Issues for each Query (e.g for the needs of Team Support)

Quick Text Search

provide "quick" Issue search by a simple text criteria - (e.g for the needs of VCS Commit hooks, and patch integration)

Issue Operations

provide Issue operations:

  • add comment, close and submit an issue (VCS Commit hooks)

  • create a new issue preset with summary and description (create Issue from Action Items or Hudson)

  • attach files to an Issue (export and attach patch to an issue from VCS)

  • parse text for issue references in the IDE (comments in source code editors, or in commit messages in VCS or in code comments)

  • open Issues by ID