This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 238275 - Bugtracking API/SPI review
Summary: Bugtracking API/SPI review
Status: RESOLVED FIXED
Alias: None
Product: connecteddeveloper
Classification: Unclassified
Component: Issuetracking Framework (show other bugs)
Version: 8.0
Hardware: All All
: P1 normal (vote)
Assignee: apireviews
URL: http://wiki.netbeans.org/BugtrackignA...
Keywords: API_REVIEW
Depends on:
Blocks: 162279
  Show dependency tree
 
Reported: 2013-11-12 14:35 UTC by Tomas Stupka
Modified: 2014-01-07 02:50 UTC (History)
3 users (show)

See Also:
Issue Type: TASK
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tomas Stupka 2013-11-12 14:35:55 UTC
This is to propose a public Bugtracking API/SPI. 

Motivation:
Allow external parties to create fully integrated support for arbitrary bugtracking systems.

Justification:
Public SPI for third party bugtracking system implementors.

Current status:
We have four internal bugtracking modules: Bugzilla, JIRA, ODCS and Local Tasks. All four depend on the core bugtracking modules (friends) providing the infrastructure and general UI facilities. Besides that, there are known third party implementations (redmine, mantis) which currently have no other option then a implementation dependency with all the resulting drawbacks. 

From the api point of view the core bugtracking modules basically contain two distinct parts: 
1.) 
- bugtracking.spi/api packages in the bugtracking module - SPI for integrators, API for access to bugtracking functionality from other parts of the IDE - vcs, Team Support, ...
2.) 
- various utility methods and components in the bugtracking.commons and team.commons modules. Used internaly from our bugtracking modules (implementations) and as well as from the core modules. They aren't necessary for a working bugtracking system integration and aren't part of this review.
- mylyn.utils - mainly a layer above mylyn.tasks.core. Not essential to plug into the bugtracking infrastructure and used only internally for now. 

Proposal:

Review and make the SPI/API packages public (maybe keep as stable "Under development")

for more information:
- see javadoc in bugtracking/o.n.m.bugtracking.spi/api
- arch.xml
- tests are in test/o.n.m.bugtracking.api
- simple cookbook doc and sample project will follow
Comment 1 Tomas Stupka 2013-11-21 14:04:56 UTC
cookbook and sample project available here http://wiki.netbeans.org/BugtrackingCookbook (wrk in progress)
Comment 2 Jaroslav Tulach 2013-12-02 11:56:28 UTC
Y01 I like the "cookbook" - that is what should be part of usecases section. Who cares for having "Registration and setup:
The Bugtracking SPI provides a way to register bugtracking plugins and to setup remote Repository configurations of one kind." in the documentation vs. "Register a Connector + a sample code"! But at least the information is somewhere.

Y02 In addition to Y01: somehow make sure the API class names in the usecases/cookbook point to javadoc. It is hard to get from samples to the actual detailed description of the classes.

Y03 Add package.html into API packages to fill the blank space in the package table...
Comment 3 Tomas Stupka 2013-12-02 17:44:18 UTC
> Y01 I like the "cookbook" - that is what should be part of usecases section. Who cares for having "Registration and setup:
> The Bugtracking SPI provides a way to register bugtracking plugins and to setup remote Repository configurations of one kind." in the documentation vs. "Register a Connector + a sample code"! But at least the information is somewhere.
> Y02 In addition to Y01: somehow make sure the API class names in the usecases/cookbook point to javadoc. It is hard to get from samples to the actual detailed description of the classes.
> Y03 Add package.html into API packages to fill the blank space in the package table...

Y01,03: made the Cookbook reference more prominent, added package.html - core-main #3235a5f1248f
Y02: this one was fun. done.
Comment 4 Quality Engineering 2013-12-15 02:15:32 UTC
Integrated into 'main-silver', will be available in build *201312150002* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)

Changeset: http://hg.netbeans.org/main-silver/rev/9d244afb4ae8
User: Tomas Pavek <tpavek@netbeans.org>
Log: enable for use from OSGi bundle (temporary before made public as part of #238275)
Comment 5 Tomas Stupka 2013-12-19 15:02:19 UTC
in case nobody objects, i'm going to close this tomorrow ...
Comment 6 adithyank 2013-12-19 20:03:07 UTC
Does it mean that the bugtracking API/SPI has become public, so that we can write plugins by using this... Waiting for a long time for this. I am planning to write one for chiliproject (a fork of redmine).

Sorry for the silly question
Comment 7 Tomas Stupka 2013-12-19 20:22:54 UTC
(In reply to adithyank from comment #6)
> Does it mean that the bugtracking API/SPI has become public, so that we can
> write plugins by using this... 
yes, that's what is going to happen in the next days

see the cookbook on how to use it
http://wiki.netbeans.org/BugtrackingCookbook
Comment 8 Tomas Stupka 2014-01-06 12:41:02 UTC
it's public now 
core-main #23a650fae2a1
Comment 9 Quality Engineering 2014-01-07 02:50:15 UTC
Integrated into 'main-silver', will be available in build *201401070002* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)

Changeset: http://hg.netbeans.org/main-silver/rev/23a650fae2a1
User: Tomas Stupka <tstupka@netbeans.org>
Log: issue #238275 - Bugtracking API/SPI review
- made api/spi public