The Application Assembler may define the value of the transaction attributes for the methods of the home and component interfaces of the enterprise beans that require container-managed transaction demarcation. It is, however, usually either the job of the Bean Provider or Deployer to ensure that these attributes are set.
Well lets face it, some of these role boundaries are fuzzy, just as the roles are somewhat artificial.
The Bean Provider knows and can relate the transaction attributes that the supplied beans can support. The Bean provider may not know which attributes are necessary in each of the targeted applications, and which ones are supported in the operational environment.
The Application Assembler knows which transaction attributes are necessary to fullfil the requirements of the application. The Application Assembler may not know which resources in the operational environment support certain transaction attributes.
The Deployer knows which resources in the operational environment support certain transaction attributes.
So the Bean Provider specifies the beans capability, the application assembler narrows those capabilities to satisfy the applications requirements, and finally the deployer knows which transaction attributes a resource in the operational environment can support.