Java Emitter Template (JET) Component Projects pattern

The Rational Software Delivery Platform includes new code-generation technology based on the Eclipse Modeling Framework Technologies Java Emitter Template (JET) open-source project. JET includes many technologies first demonstrated in the Design Pattern Toolkit (DPTK).

Java Emitter Template (JET) is the Rational Application Developer upgrade to the Design Pattern Toolkit (DPTK). It is an Eclipse-enabled template engine for generating applications based on customizable, model-driven architecture transformations. WebSphere Commerce uses the JET plug-in for creating WebSphere Commerce service modules from a simple XML file. By describing the service module in a specialized XML syntax, the service modules can be generated. This allows us to start directly with the service module implementation without having to spend hours with the setup and configuration of a service module.

Note: The DPTK pattern provided in WebSphere Commerce Version 6 generated a sample Delete command for a new service. However, the JET-based pattern does not generate a sample Delete command, only a Create. This update seeks to simplify what the pattern generates. If you require a Delete command, we must create a new class that extends the AbstractProcessDeleteActionUsingBusinessObjectMediatorCmdImpl class.


Component Projects Pattern Input Definition

Component Projects Pattern Input Definition
Element Attribute Remark
commerceComponent The root node of a service module definition.
name The service module name (Project).
packagenameprefix The package name for generated class (com.mycompany.commerce).
namespace The name space for the new services.
nlsprefix The namespace prefix that associates an element with a particular namespace. The value is generally a four-character string.
type Either SOI or BOD

SOI: using existing task command and access beans.

BOD: using new commands and DSL.

internal Reserved for IBM internal use.
noun May define 1 to n of nouns under the Commerce-component element.
name The noun's name.
get Either true or false

True: The noun provides get services.

False: The noun does not provide get services.

process Either true or false.
change Either true or false.
sync Either true or false.
nounpart May define 0 to n noun parts under each noun.
name The name of the noun part.
xpath The XPath of the noun part. For example, if a noun part name is Description, the XPath would be /Description[]


Generated files

The following files are generated when running the pattern, where:

List of generated files for ServiceModule-Client.
SOI/BOD Verb Implement Regenerated
ServiceModule-Client
ServiceModuleFacade.java Y
NounException.java Y
AbstractServiceModuleFacadeClient.java Y
ServiceModuleFacadeConstants.java Y
ServiceModuleFacadeClient.java Y
ExternalServiceNameFacadeConstants Y
AbstractExternalServiceNameFacadeClient Y
ExternalServiceNameClient Y

List of generated files for ServiceModule-DataObjects.
SOI/BOD Verb Implement Regenerated
ServiceModule-DataObjects
BOD and Noun XSD files Y
ServiceModuleServices.wsdl Y
genmodel Reload
ecore Reload

List of generated files for ServiceModule-Server.
SOI/BOD Verb Implement Regenerated
ServiceModule-Server
GetNounCmd Get
GetNounCmdImpl Get
ComposeNounCmd SOI Get
ComposeNounCmdImpl SOI Get Y
FetchNounCmd Get
FetchNounCmdImpl Get Y (SOI)
InsertMoreNounCmd Get
InsertMoreNounCmdImpl Get Y
ChangeNounCmd Change
ChangeNounCmdImpl Change
ChangeNounNounPartCmdImpl BOD Change Y
ChangeNounNounPartPostActionCmdImpl BOD Change Y
ChangeNounPartCmd BOD Change
ChangeNounPartPostActionCmd BOD Change
ProcessNounActionCmd BOD Process
ProcessNounCreateActionCmdImpl BOD Process Y
ProcessNounCmd Process
ProcessNounCmdImpl Process
ProcessNounDeleteActionCmdImpl BOD Process Y
SyncNounCmd Sync
SyncNounCmdImpl Sync
ReadNounMediator BOD Get Y
ReadNounNounPartMediator BOD Get Y
ChangeNounMediator BOD Process Change Sync Y
ChangeNounBasePartMediator BOD Process Change Sync Y
ChangeNounNounPartMediator BOD Process Change Sync Y
NounTypeProtectableProxy.java BOD Y
ServiceModuleFacade.java Y
ServiceModuleFacadeBeanImpl.java Y
ServiceModuleFacadeImpl.java Y
ServiceModuleLocalFacade.java Y
ServiceModuleServicesImpl.java Y
ServiceModuleServicesPortType.java Y
ServiceModuleServicesPortType_RI.java Y
ServiceModuleServicesPortTypeHome.java Y
ServiceModuleApplicationException.java Y
ServiceModuleServices_mapping.xml Y
ServiceModuleServices.wsdl Y
ejb-jar.xml
webservices.xml
ibm-ejb-jar-bnd.xmi
ibm-ejb-jar-ext.xmi
ibm-webservices-bnd.xmi
ibm-webservices-ext.xmi
Manifest.mf
WcServiceModuleMessages.properties Y
ServiceModule-cmdreg.xml Y
ServiceModule-Server/sampleData
Noun-Access-Control.xml BOD Y
CmdReg.xml Y

List of generated configuration files for the WC project (WC/XML/config/packageNamePrefix.ServiceModule)
SOI/BOD Verb Implement Regenerated
Service module configuration Y
SDO.properties Y
wc-component-client.xml Y
wc-component.xml Y
wc-business-object-mediator.xml BOD Y
wc-object-relational-metadata.xml BOD Y
wc-query-noun-get.tpl BOD Y
wc-query-noun-update.tpl BOD Y

List of generated files for ServiceModuleServicesHTTPInterface.
SOI/BOD Verb Implement Regenerated
ServiceModuleServicesHTTPInterface
.websettings
website-config
Manifest.mf
ibm-web-bnd.xmi
ibm-web-ext.xmi
web.xml

Note: Generally, you should not need to modify the ServiceModuleServicesHTTPInterface project or its generated files.

List of generated files for ServiceModuleServicesJMSInterface.
SOI/BOD Verb Implement Regenerated
ServiceModuleServicesJMSInterface
ejb-jar.xml
ibm-ejbext.properties
ibm-ejb-jar-bnd.xmi
Manifest.mf

Note: Generally, you should not need to modify the ServiceModuleServicesJMSInterface project or its generated files.


Related concepts
Nouns


Related tasks
Working with WebSphere Commerce SOI services