This document describes the replacement of a modification mechanism of a server-specific configuration based on listening to the changes of standard deployment descriptor model.
The current mechanism, in which server plugins listen to changes made in deployment descriptors and provide necessary modifications in a server-specific configuration, is not satisfactory - there are currently two main problems:
Basically, there is a need for some additional information provided by a user (e.g. he should provide a resource reference name together with a corresponding JNDI name) to resolve the second issue and this information must be passed to a server plugin to allow modification of a server-specific configuration to resolve the first one.
This document should finally provide a design-level solution of the mentioned problems in terms of new j2eeserver API/SPI and necessary UI changes.
Enterprise Actions include "Use Database" action, "Send JMS Message" action, "Send E-mail" action and "Call Enterprise Bean" action.
User must provide a resource reference name by creating a new reference or selecting from existing references. Here, the difference between a '(resource) reference' and a 'resource' is essential.
<<< Data required from a project:
<<< Data required from a server plugin:
J2eeModuleProvider.ConfigSupport.findDatasourceJndiName(...)
J2eeModuleProvider.ConfigSupport.findDatasourceJndiNameForEjb(...)
J2eeModuleProvider.ConfigSupport.findDatasource(...)
>>> Data passed to a server plugin:
J2eeModuleProvider.ConfigSupport.bindDatasourceReference(...)
J2eeModuleProvider.ConfigSupport.bindDatasourceReferenceForEjb(...)
<<< Data required from a project:
<<< Data required from a server plugin:
J2eeModuleProvider.getModuleDatasources()
J2eeModuleProvider.getServerDatasources()
User must select from the list of destinations or create a new one. The Bean name and the destination JNDI name are passed to a server plugin.
<<< Data required from a server plugin:
J2eeModuleProvider.ConfigSupport.getMessageDestinations()
J2eeModuleProvider.ConfigSupport.getServerMessageDestinations()
>>> Data passed to a server plugin:
J2eeModuleProvider.ConfigSupport.bindMdbToMessageDestination(...)
<<< Data required from a server plugin:
J2eeModuleProvider.ConfigSupport.getMessageDestinations()
J2eeModuleProvider.ConfigSupport.getServerMessageDestinations()
>>> Data passed to a server plugin:
J2eeModuleProvider.ConfigSupport.supportsCreateMessageDestination()
J2eeModuleProvider.ConfigSupport.createMessageDestination(...)
User must select a destination on the server or a destination bound to a MDB found in an open project.
<<< Data required from a server plugin:
J2eeModuleProvider.ConfigSupport.getMessageDestinations()
J2eeModuleProvider.ConfigSupport.getServerMessageDestinations()
>>> Data passed to a server plugin:
J2eeModuleProvider.ConfigSupport.bindMessageDestinationReference(...)
J2eeModuleProvider.ConfigSupport.bindMessageDestinationReferenceForEjb(...)
<<< Data required from a server plugin:
>>> Data passed to a server plugin:
<<< Data required from a project:
<<< Data required from a server plugin:
J2eeModuleProvider.ConfigSupport.findMessageDestinationName(...)
J2eeModuleProvider.ConfigSupport.findMessageDestination(...)
>>> Data passed to a server plugin:
J2eeModuleProvider.ConfigSupport.bindMessageDestinationReference(...)
J2eeModuleProvider.ConfigSupport.bindMessageDestinationReferenceForEjb(...)
User must provide an enterprise bean to be referenced.
<<< Data required from a project:
>>> Data passed to a server plugin:
J2eeModuleProvider.ConfigSupport.bindEjbReference(...)
J2eeModuleProvider.ConfigSupport.bindEjbReferenceForEjb(...)
User must provide an e-mail reference name by creating a new reference or selecting from existing e-mail references. Here, the difference between a '(e-mail) (resource) reference' and a '(e-mail) resource' is essential.
<<< Data required from a project:
<<< Data required from a server plugin:
<<< Data required from a project:
>>> Data passed to a server plugin: