This is preliminary plan for Wizard API redesign in core
platform.
The plan defines:
highlevel areas,
tasks in detail for each area,
milestones in which the plan can be implemented.
The plan is still quite high level and needs to go into more details if
realistic estimates are needed. At the moment it just captures all what
has to be done, all what is unknown and needs to be analyzed and defines
dependencies between these tasks.
If there is no status or owner mentioned it means that no work was done yet and task is not planned yet. The tasks in issuezilla hasn't be filed yet, will be made soon.
Highlevel Areas
The Wizard API redesign plan can be split into these highlevel areas:
A1: Propose Wizard API Prototype API&SPI, discuss and reflecting changes and pass the
standard Architecture review.
A2: Changes in Templates management Prototype new Templates management (w/o old datasystems) and new wizard
built on the top of Wizard API.
B1: Migrate to Wizard API Implement NetBeans wizard default
implementation and all core module's usages of old WizardDescriptor should be
rewritten to use new Wizard API.
B2: Create new TemplateWizard implementation Implement new TemplateWizard
implementation with new templates management.
C1: Provide examples how to use Wizard API Provide examples how to use Wizard
API features use the supported use-cases, write Migration guide from old
wizard's implementation to Wizard API.
Areas in more detail
A1: Propose Wizard API
A1.1:create proposal for the module and its public API
&SPI Status: in progress.
Comment: The Wizard API is available on openide/wizards on branch
.
A2.5: Prototype Template wizard as Wizard API use-case
Dependencies:
A2.5 depends on A1.2,
A2.3 depends on A2.1,
A2.4 depends on A2.3.
B1: Migrate to Wizard API
Implement NetBeans wizard default implementation and all core module's usages
of old WizardDescriptor should be rewritten to use new Wizard API.
B1.1: Create default NetBeans WizardUI
B1.1.1: Provide NetBeans WizardUI customization API
B1.1.2: Implement default NetBeans WizardUI
B1.2: Rewrite core's modules wizard. e.g. Mount wizard, AutoUpdate wizard
B1.3: Document experience with using API and hints how to effective use them
Dependencies:
B1.1 depends on A1.2,
B1.2 depends on A1.4 and B1.1,
B1.3 depends on B1.2.
B2: Create new TemplateWizard implementation
Implement TemplateWizard separated from old datasystems
(package org.openide.loaders) uses proposed Templates registration.
Also document how to migrate
B2.1: Create TemplateWizard and prepare shared wizard's pages
B2.1.1: Prepare shared wizard's page e.g. TemplateChooser.
TargetChooser
B2.1.2: Make ready registration Templates in registry
B2.2: Enable reading old format Templates folder
B2.3: Document migration to Wizard API
Dependencies:
B2.1.1 depends on A2.1,
B2.1.2 depends on A2.3,
B2.2 depends on A2.4.
C1: Provide examples how to use Wizard API
Write code examples built on the top Wizard API, write User view
how to use this API and provide support on mailing lists and internally to help
use this API.
C1.1: Write code examples demonstrates API features
C1.2: Write User view
Dependencies:
C1.1 depends on all above,
C1.2 depends on B1.3.
Milestones
The above tasks can be grouped into these milestones.
M1: Wizard API - basic implementation ready
finish A1.2
Note: Merge Wizard API to main trunk as
devel.
status: in progress
Expected date: postponed (new date will be TBD)
M2: Pass Architecture Review
finish A1.5
depends on: M1 and Architecture reviewers
Note: Deprecate WizardDescriptor.
status: in progress
Expected date: postponed (new date will be TBD)
M3: New Templates - basic management ready
finish A2.5
status: not in progress but must be started
soon
Expected date: postponed (new date will be TBD)
M4: Core's wizards migrated - full implementation Wizard API
depends on: M1
finish B1.2
Expected date: postponed (new date will be TBD)
M5: New Templates - full implementation TemplatesWizard ready
depends on: M3, M4
finish B2.2
Expected date:
M5: API documentation and examples ready
depends on: M3, M5
finish B1.3, B2.3 and C1.2
Expected date:
Current plan is to finish M1, process M2 and
start M3 as soon as possible.