blob: ee4bbb8e71b2466a2cdef72cab02dfaeec9db135 [file] [log] [blame]
//
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
//
= SPI - Service Provider Interface
:jbake-type: wiki
:jbake-tags: wiki, devfaq, needsreview
:markup-in-source: verbatim,quotes,macros
:jbake-status: published
:syntax: true
:description: SPI
:icons: font
:source-highlighter: pygments
:toc: left
:toc-title:
:experimental:
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]]
=== Connector
[[Registration]]
==== Registration
register a Butracking plugin
[[Connector_Information]]
==== Connector Information
provide basic information about a Bugtracking plugin - name, tooltip, icon, ...
[[Repository]]
=== Repository
provide functionality to manage Repository lifecycle
[[Create_a_Repository]]
==== Create a Repository
create and validate a Bugtracking repository
[[Edit_Repository_Settings]]
==== Edit Repository Settings
edit and validate repository settings
[[Remove_a_Repository]]
==== Remove a Repository
remove a Bugtracking repository
[[Accessing_Issues]]
=== Accessing Issues
Provide Issues from a Repository by:
[[Quick_Text_Search]]
==== Quick Text Search
provide Issues from a Repository based on a simple text criteria - match text with id or summary
[[By_Issue_ID]]
==== By Issue ID
provide Issues from a Repository given by their id
[[Access_Issues_via_Queries]]
==== Access Issues via Queries
provide Issues from a Repository given by a parametrised Queries
[[Query_Management]]
=== Query Management
provide functionality to manage Query lifecycle:
[[Create_and_Edit_Queries]]
==== 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
remove a Query associated with a Repository
[[List_Queries]]
==== List Queries
provide list of saved Queries associated with a Repository and notify about eventual changes in the saved queries list
[[Refresh_a_Query]]
==== Refresh a Query
execute the Query against the remote server and retrieve Issues matching the query criteria
[[List_Issues]]
==== List Issues
provide list of Issues returned by the last Query refresh
[[Issue_Management]]
=== Issue Management
provide functionality to access and manipulate Issues:
[[Create_and_Edit_Queries_2]]
==== 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]]
==== Basic Issue Information
provide basic issue information - id, summary, priority, finished state, relationship to other issues (parent/child), etc ...
[[Incoming_Changes]]
==== Incoming Changes
*(Not mandatory)*
provide status information about incoming issue changes
[[Refresh_Issue]]
==== Refresh Issue
refresh the current Issue state from the remote server
[[Issue_Scheduling]]
==== Issue Scheduling
set and provide information about locally private and/or remote Issue scheduling. *(Not mandatory.)*
[[Offline_Work]]
=== Offline Work
Persist Issue and Query state between IDE sessions. Notify and provide information about an Issues current local state. *(Not mandatory.)*
[[Outgoing_Changes]]
==== Outgoing Changes
provide status information about outgoing (local) issue changes
[[List_local_changes]]
==== List local changes
provide list of locally changed issues
[[Submit]]
==== Submit
submit locally changed issues
[[API]]
== API: Application Provider Interface
the bugtracking infrastructure will provide the following functionality for other subsystems to support:
[[List_Repositories]]
=== List Repositories
provide a list of all existing repositories
[[Access_Issues_by_Queries]]
=== 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_2]]
=== 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]]
=== 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)
[[Hyperlink_Issue_References]]
=== Hyperlink Issue References
* 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
[NOTE]
====
The content in this page was kindly donated by Oracle Corp. to the Apache Software Foundation.
This page was exported from link:http://wiki.netbeans.org/BugtrackingAPISPIUseCases[http://wiki.netbeans.org/BugtrackingAPISPIUseCases] , that was last modified by NetBeans user Tstupka on 2013-11-12T14:11:14Z.
This document was automatically converted to the AsciiDoc format on 2020-03-12, and needs to be reviewed.
====