JBI Component Developer Kit (JBI CDK)
UI Specification
Author: Srinivasan Chikkala
$Revision: 0.2 $ - draft
$Date: 2007/08/17 18:00:00 $
NetBeans UI Spec Template:
http://ui.netbeans.org/docs/hi/uireview/ui-spec-template.html
This document describes the
usecases and scenarios for the JBI Component development kit which is a
set of netbeans modules that provide a development tools for JBI
service engine or binding component development using IDE.
Target users are the JBI Component developers who develop
Service
Engines and Binding Components using JBI APIs and SPIs and also provide
the design time tools for these JBI Component to participate in
Composite Application development environment ( Composite App project,
CASA Editor, WSDL Editor, WSDL Wizard etc).
Use Cases and Scenarios
- UC0001: Create JBI
Binding Component project
- UC0002: Create JBI
Service Engine project
- UC0003: Customize JBI
Component (BC or SE) project
- UC0004: Create JBI
Binding Component deployment plugin project
- UC0005: Create JBI
Service Engine deployment plugin project
- UC0006: Build JBI
Component(SE or BC) project from Maven2
- UC0007: Import wsdl
extension schema to generate the design time wsdl
extension processing model
- UC0008: Update design
time wsdl extension processing models with wsdl
extension schema changes
- UC0009: Update
component description in BC plugin
- UC0010: Update
component description in SE plugin
- UC0011: Map wsdl
extensions schema to wsdl editor model
- UC0012: Map wsdl
extensions schema to wsdl template model
- UC0013: Map wsdl
extensions schema to wsdl property editors
- UC0014: Map wsdl
extensions schema to runtime model
- UC0015: Import wsdl
extension schema and generate the runtime wsdl
extension processing
model
- UC0016: Update
runtime wsdl extension processing models with wsdl
extension schema changes.
- UC0017: Create
component configuration model
- UC0018: Modify
component configuration model
- UC0019: Create
component environment variables model
- UC0020: Create BC
project from WSDL for proxy service provider
- UC0021: Create BC
project from WSDL for proxy service consumer
- UC0022: Create SE
project from WSDL for service provider.
UC0001: Create JBI
Binding Component project
Usecase : UC0001: Create JBI
Binding
Component project
|
Description
|
| User creates a development
environment for developing a JBI Binding Component in the IDE. |
| Actors |
|
|
Pre-Conditions
|
- user should be familiar with how to create projects in the
IDE
- user should be familiar with JBI component architecture
- user should be familiar with JBI binding component
architecture
|
Post-Conditions
|
- a JBI Component project with binding component code is
created.
- a test case for testing the binding component is created
- a binding component deployment plugin netbeans module
project is created.
- to understand the generated code, user should be familiar
with the generated BC implementation.
|
Scenario:
|
- user selects New Projects wizard -
- selects JBI Components folder and selects JBI Binding
Component project template - Figure1
- enters the project name and location ( or keep default
values ) - Figure2
- enters the java package name in which the source code will
be created ( or keep default values )
- enters the JBI component description ( or keep default
values )
- selects the target server for installation ( or keep
default values )
- user clicks finish button to generate the JBI component
project with JBI binding component code.
|
|
UC0002: Create JBI
Service Engine project
Usecase : UC0002: Create JBI
Service
Engine project
|
Description
|
| User creates a development
environment for developing a JBI Service Engine in the IDE. |
| Actors |
|
|
Pre-Conditions
|
- user should be familiar with how to create projects in the
IDE
- user should be familiar with JBI component architecture
- user should be familiar with JBI service engine architecture
|
Post-Conditions
|
- a JBI Component project with service engine runtime code
is
created.
- a test service assembly to test the service engine is
created
- to understand the generated code, user should be familiar
with the generated SE implementation.
|
Scenario:
|
- user selects New Projects wizard,
- selects JBI Components folder and selects JBI Service
Engine project template - Figure1
- enters the project name and location ( or keep default
values ) - Figure3
- enters the java package name in which the source code will
be created ( or keep default values )
- enters the JBI component description ( or keep default
values )
- selects the target server for installation ( or keep
default values )
- user clicks finish button to generate the JBI component
project with JBI binding component code.
|
|
UC0003: Customize JBI
Component (BC or SE) project
Usecase : UC0003: Customize JBI
Component(BC or SE) project
|
Description
|
| User edits the BC or SE
project to add/remove/edit JBI installation descriptor settings and
compile and installation options |
| Actors |
- JBI component developer using SE or BC Project
|
Pre-Conditions
|
- user should be familiar with how to use projects in the IDE
- user should be familiar with JBI component architecture
- user should be familiar with BC or SE architecture
- user should be familiar with JBI component installation
descriptor
|
Post-Conditions
|
- the component description in the JBI component
installation descriptor changed.
- the component implementation class names changed.
- the component runtime classpath changed
- the component compile and test classpaths changed.
|
Scenario:
|
- user selects BC or SE project nodes "properties" popup menu
to bring the project customizer,
- selects the descriptor option in the customizer to modify
component description and class names. - Figure8
- select the libraries option in the customizer to show the
libraries included for compilation, test and runtime -
- add/remove libraries, jar files or project jar files to
include them in the compilation, test and runtime classpaths - Figure7
- select the run option in the customizer to select the
target server and installation parameters (if required) - Figure9
- user clicks finish button to update the installation
descriptor, update build scripts with the correct classpath
settings, update target server and installation parameters.
|
|
UC0004: Create JBI
Binding Component deployment plugin project
Usecase : UC0004: Create JBI
Binding
component deployment plugin project
|
Description
|
User creates a netbeans module
project for developing a JBI Binding component deployment plugin to
provide a support for a BC in the design time tools ( CompApp, CASA,
WSDL Editor and WSDL Wizard.)
|
| Actors |
|
|
Pre-Conditions
|
- user should be familiar with how to create projects in the
IDE
- user should be familiar with JBI component architecture
- user should be familiar with the wsdl extensions usage in
JBI binding component
- user should be familiar with the design time tools -
CompApp, CASA Editor, WSDL Editor, WSDL Wizard
|
Post-Conditions
|
- a Netbeans module project for JBI Binding component
deployment plugin is created with the required code.
- to understand the generated code
- user should be familiar with JBI BC design time plugin
requirements
- user should be familiar with JBI binding component
architecture
- user should be familiar with the wsdl extensions usage in
JBI binding component
- user should be familiar with the design time tools -
CompApp, CASA Editor, WSDL Editor, WSDL Wizard
|
Scenario:
|
- user selects New Projects wizard,
- selects JBI Components folder and selects JBI Binding
Component Deployment plugin project template - Figure1
- enters the project name and location ( or keep default
values ) - Figure4
- enters the java package name in which the source code will
be created ( or keep default values )
- enters the JBI component description ( or keep default
values )
- enters the wsdl extension name space and prefix ( or keep
default values )
- user clicks finish button to generate a netbeans module
project for JBI component deployment plugin
|
|
UC0005: Create JBI
Service Engine deployment plugin project
Usecase : UC0005: Create JBI
Service
engine deployment plugin project
|
Description
|
User
creates a netbeans module project for developing a JBI Service Engine
deployment plugin to provide a support for a SE in the design
time tools ( CompApp, CASA, WSDL Editor and WSDL Wizard.)
|
| Actors |
|
|
Pre-Conditions
|
- user should be familiar with how to create projects in the
IDE
- user should be familiar with the requirements of the design
time requirements for SE
- user should be familiar with netbeans ant based project
APIs.
|
Post-Conditions
|
- a Netbeans module project for JBI Service engine
deployment plugin is created with the required code.
- to understand the generated code
- user should be familiar with JBI service engine design
time requirements
- user should be familiar with ant build scripts
- user should be familiar with netbeans ant based project
APIs.
- user should be familiar with the design time tools -
CompApp, CASA Editor, WSDL Editor, WSDL Wizard
|
Scenario:
|
- user selects New Projects wizard,
- selects JBI Components folder and selects JBI Service
Engine Deployment plugin project template - Figure1
- enters the project name and location ( or keep default
values ) - Figure5
- enters the java package name in which the source code will
be created ( or keep default values )
- enters the JBI component description ( or keep default
values )
- user clicks finish button to generate a netbeans module
project for JBI component deployment plugin
|
|
UC0006: Build JBI
Component(SE or BC) project from Maven2
| Usecase : UC0006: Build JBI
Component(SE or BC) project from Maven2 |
Description
|
User
creates a JBI Component (SE or BC) from netbeans IDE and builds the
project from the command line using Maven
|
| Actors |
|
|
Pre-Conditions
|
- user should be familiar with how to create projects in the
IDE
|
Post-Conditions
|
- a JBI Component project with BC or SE runtime code is
created.
- a Maven2 project meta data file pom.xml is created to
work with maven environment.
- user should be familiar with Maven build system and build
lifecycle
- user should be familiar with ant build scripts
- user should be familiar with JBI Component build lifecycle.
- user should be familiar with JBI Component architecture
|
Scenario:
|
- user follows the scenario in usecase0001 or usecase0002 to
create jbi component project
- cd to the jbi component project directory.
- setup maven environment and execute maven commands to build
the project.
|
|
UC0007: Import wsdl
extension schema to generate the design time wsdl
extension processing model
| Usecase :
UC0007: Import wsdl extension schema to generate the design time wsdl
extension processing model |
Description
|
User
imports existing wsdl extension schema file either at plugin project
creation time or post project creation time to generate the wsdl
extension model required for wsdl editor, wsdl wizard, casa editor.
|
| Actors |
- JBI component developer
- BC design time plugin developer
|
Pre-Conditions
|
- wsdl extension schema file should exist either in the
runtime jbi component project or somewhere on the native filesystem.
|
Post-Conditions
|
- wsdl editor model will be generated or updated
- wsdl template model will be generated or updated
- user should be familiar with the BC design time plugin
module requirements to understand the generated code.
|
Scenario1: import during plugin
project creation
|
- User selects new BC project wizard
- click the browse button to select the existing wsdl
extension schema file on the native filesystem Figure?
- click next to map the elements to wsdl binding extensions
- click finish to generate the BC project with the the wsdl
extension processing model for the schema defined in the file.
|
| Scenario2: import into the
exiting plugin project |
|
|
|
UC0008: Update design
time wsdl extension processing models with wsdl
extension schema changes
| Usecase :
UC0008: Update design time wsdl extension processing models with wsdl
extension schema changes |
Description
|
user want to regenerate all
the effected wsdl extensions model from the modified wsdl extension
schema file edited and modified using xml schema editor.
|
| Actors |
- JBI Component Developer
- BC design time plugin developer
|
Pre-Conditions
|
- wsdl schema file should exist in the plugin project
|
Post-Conditions
|
- wsdl editor model will be generated or updated
- wsdl template model will be generated or updated
- user should be familiar with the BC design time plugin
module requirements to understand the generated code.
|
Scenario:
|
|
|
|
UC0009: Update
component description in BC plugin
| Usecase :
UC0009: Update component description in BC plugin |
Description
|
User modifies the component name
and its description in the BC deployment plugin project
|
| Actors |
- BC design time plugin developer
|
Pre-Conditions
|
- user should be familiar with netbeans module project
|
Post-Conditions
|
- component configuration elements in layer.xml are updated.
|
Scenario:
|
|
|
|
UC0010: Update
component description in SE plugin
| Usecase :
UC0010: Update component description in SE plugin |
Description
|
| User modifies the component name
and its description in the SE deployment plugin project |
| Actors |
- SE design time plugin developer
|
Pre-Conditions
|
- user should be familiar with netbeans module project
|
Post-Conditions
|
- component configuration elements in layer.xml are updated.
|
Scenario:
|
|
|
|
UC0011: Map wsdl
extensions schema to wsdl editor model
| Usecase :
UC0011: Map wsdl extensions schema to wsdl editor model |
Description
|
User want to change which
element in the wsdl extension schema goes under specific wsdl
binding extension.
|
| Actors |
- BC design time plugin developer
|
Pre-Conditions
|
- wsdl extension schema file should exist in the design time
project
|
Post-Conditions
|
- wsdl binding extension to schema elements map in the
layer.xml is updated.
- the java code that processes the extension element for the
wsdl binding extensions is regenerated.
- user should be familiar with the "XML WSDL API",
"Extensible Abstract Model(XAM)" netbeans module apis to understand the
generated code.
|
Scenario:
|
|
|
|
UC0012: Map wsdl
extensions schema to wsdl template model
| Usecase :
UC0012: Map wsdl extensions schema to wsdl template model |
Description
|
User
want to create default values to the wsdl binding extension elements
mapped from extension schema
|
| Actors |
- BC design time plugin developer
|
Pre-Conditions
|
- wsdl extension schema file should exist in the design time
project
|
Post-Conditions
|
- wsdl extension template model is updated
- user should be familiar with the "WSDL Binding Support API"
module of the netbeans to understand the code.
|
Scenario:
|
|
|
|
UC0013: Map wsdl
extensions schema to wsdl property editors
| Usecase :
UC0013: Map wsdl extensions schema to wsdl property editors |
Description
|
User
want to specify how the wsdl extension element attributes will be
edited in the properties editor of the wsdl editor or casa editor.
|
| Actors |
- BC design time plugin developer
|
Pre-Conditions
|
- wsdl extension schema file should exist in the design time
project
|
Post-Conditions
|
- wsdl schema file is updated with the property editor
description corresponding to the element attributes.
|
Scenario:
|
|
|
|
UC0014: Map wsdl
extensions schema to runtime model
| Usecase :
UC0014: Map wsdl extensions schema to runtime model |
Description
|
User
want to regenerate the runtime model for the wsdl extension processing
with the modified wsdl extension schema file.
|
| Actors |
|
|
Pre-Conditions
|
- wsdl extension schema file exists in the BC project
|
Post-Conditions
|
- wsdl extension processing model in the component is
regenerated.
- user should be familiar with generated JBI Component
architecture
- user should be familiar with the wsdl4j api/spi that
process
the wsdl extensions to understand the generated code.
|
Scenario:
|
|
|
|
UC0015: Import wsdl
extension schema and generate the runtime wsdl
extension processing
model
| Usecase :
UC0015: Import wsdl extension schema and generate the runtime wsdl
extension processing
model |
Description
|
User want to use the existing
schema file in the native filesystem to generate the wsdl extension
processing model of the component during project creation time or post
project creation time.
|
| Actors |
|
|
Pre-Conditions
|
- wsdl extension schema file should exist in the native
filesystem.
- user should be familiar with the wsdl4j api/spi that
process
the wsdl extensions.
|
Post-Conditions
|
- a wsdl extension processing model is generated in the BC
project
- user should be familiar with generated JBI Component
architecture
- user should be familiar with the wsdl4j api/spi that
process
the wsdl extensions to understand the generated code.
|
Scenario:
|
|
|
|
UC0016: Update
runtime wsdl extension processing models with wsdl
extension schema changes.
| Usecase :
UC0016: Update runtime wsdl extension processing models with wsdl
extension schema changes. |
Description
|
User
want to regenerate the wsdl extension processing model code from the
modified wsdl extension schema file which is modified by the schema
editor.
|
| Actors |
|
|
Pre-Conditions
|
- wsdl extensions schema file should exist in the project
|
Post-Conditions
|
- a wsdl extension processing model is generated in the BC
project
- user should be familiar with generated JBI Component
architecture
- user should be familiar with the wsdl4j api/spi that
process
the wsdl extensions to understand the generated code.
|
Scenario:
|
|
|
|
UC0017: Create
component configuration model
| Usecase :
UC0017: Create component configuration model |
Description
|
User want to create a component
configuration mbeans and its implementation corresponding to the
component runtime configuration.
|
| Actors |
|
|
Pre-Conditions
|
- user should be familiar with JBI Component configuration
|
Post-Conditions
|
- a JMX MBean and its implementation for getting/setting the
component configuration is generated.
- user should be familiar with the generated component
configuration model to understand the code.
|
Scenario:
|
|
|
|
UC0018: Modify
component configuration model
| Usecase :
UC0018: Modify component configuration model |
Description
|
User
want to modify the existing JMX Mbean and its implementation for the
component configuration changes
|
| Actors |
|
|
Pre-Conditions
|
- user should be familiar with JBI Component configuration
|
Post-Conditions
|
- a JMX MBean and its implementation for getting/setting the
component configuration is regenerated.
- user should be familiar with the generated component
configuration model to understand the code.
|
Scenario:
|
|
|
|
UC0019: Create
component environment variables model
| Usecase :
UC0019: Create component environment variables model |
Description
|
User
want to create the code that processes environment variables in the
wsdl document.
|
| Actors |
|
|
Pre-Conditions
|
- user should be familiar with environment variable usage in
generated JBI Component architecture
|
Post-Conditions
|
- code that handles the creation of the environment variables
and their values is generated
- code that handles the processing of the environment
variables in the deployed wsdl document is generated.
- user should be familiar with the environment variable
processing model in the generated JBI Component architecture.
|
Scenario:
|
|
|
|
UC0020: Create BC
project from WSDL for proxy service provider
| Usecase :
UC0020: Create BC project from WSDL for proxy service provider |
Description
|
User
want to create BC runtime that can act as a service provider in the jbi
environment for the service corresponding to the external service
provider described in the WSDL document.
|
| Actors |
|
|
Pre-Conditions
|
- user should be familiar with JBI Component architecture
|
Post-Conditions
|
- a JBI Component project with BC runtime code that is
configured to act as a proxy service provider is created.
|
Scenario:
|
|
|
|
UC0021: Create BC
project from WSDL for proxy service consumer
| Usecase :
UC0021: Create BC project from WSDL for proxy service consumer |
Description
|
| User
want to create BC runtime that can do message exchange with the
internal service provider described by the wsdl document. |
| Actors |
|
|
Pre-Conditions
|
- user should be familiar with JBI Component architecture
|
Post-Conditions
|
- a JBI Component project with BC runtime code is
created.
|
Scenario:
|
|
|
|
UC0022: Create SE
project from WSDL for service provider.
| Usecase :
UC0022: Create SE project from WSDL for service provider. |
Description
|
User
want to create SE runtime that provides a service described in the WSDL
document provided during the SE Project creation
|
| Actors |
|
|
Pre-Conditions
|
- a WSDL document that describes the service should be
present in the native filesystem
|
Post-Conditions
|
- a JBI Component project SE runtime code that receive
messages and process them according to the service description defined
in the WSDL file
|
Scenario:
|
|
|
|
This section describes the UI changes introduced by the JBI CDK in
the IDE.
Figure1: New Project Wizard -
Choose Project

Components:
- Categories : JBI Components
- Projects: Service Engine, Binding Component, Binding Component
Deployment Plugin, Service Engine Deployment Plugin
Figure2: New Binding
component project wizard screen

Components:
- Source package text field - java package name where
the source will be generated
- Component Name text field - BC name
- Description text area - BC description
- Target Server combo box - list of servers to choose.
Figure3: New Service engine
project wizard screen

Components:
- Source package text field - java package name where the source
will be generated
- Component Name text field - SE name
- Description text area - SE description
- Target Server combo box - list of servers to choose.
Figure4: New Binding Component
Deployment Plugin wizard screen

Components:
- Source package text field - java package name where the source
will be generated
- Component Name text field - BC name
- Description text area - BC description
- Namespace text field - wsdl extension namespace that this BC
supports
- Prefix text field - prefix used in the wsdl file for this wsdl
extension
Figure5: New Service engine
deployment plugin screen

Components:
- Source package text field - java package name where the source
will be generated
- Component Name text field - SE name
- Description text area - SE description
- Project Namespace textfield - Ant based project system's project
configuration namespace
- Private Namespace textfield - Ant based project system's project
private configuration namespace
Figure6: BC or SE Project
Customizer - Categories -> Sources

Components:
Figure7: BC or SE Project
Customizer - Categories -> Libraries

Components:
- Compile tab - add/remove libraries used in the JBI
component - updates the build scripts and JBI.xml
-
Figure8: BC or SE Project
Customizer - Categories -> Descriptor

Components:
- Component Name text field - component name
- Description text area - description of the component
- Component Class text field - FQN of the Component interface
implementation class
- Component Class Browse button - shows the list of available
implementation to select
- Bootstrap Class text field - FQN of the Bootstrap interface
implementation class
- BootstrapClass Browse button - shows the list of available
implementation to select
Figure9: BC or SE Project
Customizer - Categories -> Run

Components:
- Target Server combobox - list of available server
instances configured in the IDE
- use install parameters check box - specifies that the component
installation should pass the installation parameters
- edit parameters in file Table - when the use install parameters
is checked, this table will be used to add/remove installation
parameters.
Figure10: BC or SE Project View

Components:
- Project node for the JBI component
Figure11: BC or SE project node
- popup menu

Components:
- Menu Item - Install Component - builds and installs
the component
- Menu Item - Test Component - runs the component test
- Menu Item - Uninstall Component - uninstalls the component
- Menu Item - Start Component - starts the component
- Menu Item - Stop Component - stops the component
- Menu Item - Shutdown Component - shuts down the component
- Menu Item - Forced Uninstall Component - uses force option to
uninstall the component under error condition