FitnessForErrorBadges

Current implementation of error badges piggyback on masterfs API. This slows down I/O operations and does not scale (see JavaFX loaded on start). The masterfs API has been designed as a versioning system API only contract that remains highly scalable and closed to carefully reviewed and tested clients. Opening such API to java.source, javafx.source and potentially even more clients throughout the source base violates this important architecture, quality and performance restriction.

Also creating proper and well performing API based on the current trivial masterfs API is not easy and is often subject to various errors and performance problems (JavaFX implementation is said to start complication whenever asked for a badge). Let's fix this by creating common shared infrastructure to register (in push style) and display error badges.

Standardized error badge infrastructure shall not only provide positive performance effect, but it also opens the door for other languages like PHP, Ruby, Groovy, C to provide error badges in a simple way as well.

Goals

  1. error badge painting (and definitely computation) shall not be done via MasterFS versioning system only API
  2. error badges shall require no language code to be executed on subsequent start (for already parsed projects)
  3. using new error badges shall be easy for existing languages
    1. no maintenance of caches, just pull errors on a re-parse of some files

Proposal

Let's reuse tasklist API and infrastructure. PHP and other languages will continue to register items into tasklist when they are asked to do so (as they do currently). They will just mark some of the items explorer important - e.g. showing in logical and files view. This will require addition of new factory method into tasklist API.

One of Tasklist modules will use these explorer important tasks of all opened projects to show them in explorer. This requires a special API between DataSystems and tasklist.

The later achieves goal #1 (no need for FileSystem.Status, etc.). Usage of tasklist achieves #2 (tasklist has cache of previous items). Usage of tasklist solves #3 (in all languages already integrated with tasklist there is just single line change).

Open Issues

  1. Shall the list of explorer important files be customizable by end user?
  2. Only files of opened project will be annotated, right?
  3. Do we need error badges in favorites view?
Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo