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

  1. UC0001: Create JBI Binding Component project
  2. UC0002: Create JBI Service Engine project
  3. UC0003: Customize JBI Component (BC or SE) project
  4. UC0004: Create JBI Binding Component deployment plugin project
  5. UC0005: Create JBI Service Engine deployment plugin project
  6. UC0006: Build JBI Component(SE or BC) project from Maven2
  7. UC0007: Import wsdl extension schema to generate the design time wsdl extension processing model
  8. UC0008: Update design time wsdl extension processing models with wsdl extension schema changes
  9. UC0009: Update component description in BC plugin
  10. UC0010: Update component description in SE plugin
  11. UC0011: Map wsdl extensions schema to wsdl editor model
  12. UC0012: Map wsdl extensions schema to wsdl template model
  13. UC0013: Map wsdl extensions schema to wsdl property editors
  14. UC0014: Map wsdl extensions schema to runtime model
  15. UC0015: Import wsdl extension schema and generate the runtime wsdl extension processing model
  16. UC0016: Update runtime wsdl extension processing models with wsdl extension schema changes.
  17. UC0017: Create component configuration model
  18. UC0018: Modify component configuration model
  19. UC0019: Create component environment variables model
  20. UC0020: Create BC project from WSDL for proxy service provider
  21. UC0021: Create BC project from WSDL for proxy service consumer
  22. 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
  • JBI component developer
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
  • JBI component developer
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
  • JBI component developer
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
  • JBI component developer
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
  • JBI component developer
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
  • TBD


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:
  • TBD



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:
  • TBD



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:
  • TBD



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:
  • TBD



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:
  • TBD



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:
  • TBD



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
  • JBI component developer
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:
  • TBD



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
  • JBI component developer
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:
  • TBD



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
  • JBI component developer
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:
  • TBD



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
  • JBI component developer
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:
  • TBD



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
  • JBI component developer
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:
  • TDB



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
  • JBI component developer
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:
  • TBD



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
  • JBI component developer
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:
  • TBD



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
  • JBI component developer

Pre-Conditions
  • user should be familiar with JBI Component architecture

Post-Conditions
  • a JBI Component project with BC runtime code is created.

Scenario:
  • TBD



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
  • JBI component developer
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:
  • TBD






Specification

This section describes the UI changes introduced by the JBI CDK in the IDE.

New Project Wizard - Choose Project

Figure1: New Project Wizard - Choose Project

JBICDK60_NewProjectWizard.jpg

Components:

New Project Wizard- Bindng Component

Figure2: New Binding component  project wizard screen

JBICDK60_NewBindingComponentWizard.jpg

Components:


New Project Wizard- Service Engine

Figure3: New Service engine project wizard screen

JBICDK60_NewServiceEngineWizard.jpg

Components:

New Project Wizard- Binding Component Deployment Plugin

Figure4: New Binding Component Deployment Plugin wizard screen

JBICDK60_NewBCPluginWizard.jpg

Components:

New Project Wizard- Service Engine Deployment Plugin

Figure5: New Service engine deployment plugin screen

JBICDK60_NewSEPluginWizard.jpg

Components:

Project customizer Dialog - Source

Figure6: BC or SE Project Customizer - Categories -> Sources

JBICDK60_PrjCustDialogSource.jpg

Components:

Project customizer Dialog - Libraries

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

JBICDK60_PrjCustDialogLibs.jpg

Components:

Project customizer Dialog - Descriptor

Figure8: BC or SE Project Customizer - Categories -> Descriptor

JBICDK60_PrjCustDialogJbiXml.jpg

Components:

Project customizer Dialog - Run

Figure9: BC or SE Project Customizer - Categories -> Run

JBICDK60_PrjCustDialogRun.jpg

Components:

Project View - SE or BC Project Node structure

Figure10: BC or SE Project View

JBICDK60_PrjView.jpg

Components:

Project View - Menu

Figure11: BC or SE project node - popup menu

JBICDK60_PrjMenu.jpg

Components: