}
public void initContext(EARContext earContext, Module module, ClassLoader cl) throws DeploymentException {
ConnectorModule resourceModule = (ConnectorModule) module;
final ConnectorType connector = (ConnectorType) module.getSpecDD();
/*
The chain of idiotic jsr-77 meaningless objects is:
ResourceAdapterModule (1) >
ResourceAdapter (n, but there can only be 1 resource adapter in a rar, so we use 1) >
JCAResource (1) >
JCAConnectionFactory (n) >
JCAManagedConnectionFactory (1)
We also include:
JCAResourceAdapter (n) (from JCAResource) (actual instance of ResourceAdapter)
TODO include admin objects (n) from JCAResource presumably
*/
AbstractName resourceAdapterModuleName = resourceModule.getModuleName();
AbstractName resourceAdapterjsr77Name = earContext.getNaming().createChildName(resourceAdapterModuleName, module.getName(), NameFactory.RESOURCE_ADAPTER);
AbstractName jcaResourcejsr77Name = earContext.getNaming().createChildName(resourceAdapterjsr77Name, module.getName(), NameFactory.JCA_RESOURCE);
//set up the metadata for the ResourceAdapterModule
GBeanData resourceAdapterModuleData = new GBeanData(resourceAdapterModuleName, ResourceAdapterModuleImplGBean.GBEAN_INFO);
// initalize the GBean
if (earContext.getServerName() != null) {
//app clients don't have a Server gbean
resourceAdapterModuleData.setReferencePattern(NameFactory.J2EE_SERVER, earContext.getServerName());
//app clients don't have an application name either
if (!earContext.getModuleName().equals(resourceAdapterModuleName)) {
resourceAdapterModuleData.setReferencePattern(NameFactory.J2EE_APPLICATION, earContext.getModuleName());
}
}
resourceAdapterModuleData.setReferencePattern("ResourceAdapter", resourceAdapterjsr77Name);
resourceAdapterModuleData.setAttribute("deploymentDescriptor", module.getOriginalSpecDD());
resourceAdapterModuleData.setAttribute("displayName", connector.getDisplayNameArray().length == 0 ? null : connector.getDisplayNameArray(0).getStringValue());
resourceAdapterModuleData.setAttribute("description", connector.getDescriptionArray().length == 0 ? null : connector.getDescriptionArray(0).getStringValue());
resourceAdapterModuleData.setAttribute("vendorName", connector.getVendorName().getStringValue());
resourceAdapterModuleData.setAttribute("EISType", connector.getEisType().getStringValue());
resourceAdapterModuleData.setAttribute("resourceAdapterVersion", connector.getResourceadapterVersion().getStringValue());
ResourceadapterType resourceadapter = connector.getResourceadapter();
// Create the resource adapter gbean
if (resourceadapter.isSetResourceadapterClass()) {
GBeanInfoBuilder resourceAdapterInfoBuilder = new GBeanInfoBuilder(ResourceAdapterWrapperGBean.class, ResourceAdapterWrapperGBean.GBEAN_INFO);
String resourceAdapterClassName = resourceadapter.getResourceadapterClass().getStringValue().trim();
GBeanData resourceAdapterGBeanData = setUpDynamicGBeanWithProperties(resourceAdapterClassName, resourceAdapterInfoBuilder, resourceadapter.getConfigPropertyArray(), cl, Collections.<String>emptySet());