Context resourceContext = getResourceContext( );
String[] beanDefNames = beanFactory.getBeanNamesForType( ResourceHome.class );
for ( int i = 0; i < beanDefNames.length; i++ )
{
String beanDefName = beanDefNames[i];
ResourceHome resourceHome = (ResourceHome) beanFactory.getBean( beanDefName );
String portComponentName = resourceHome.getPortComponentName( );
if ( portComponentName == null )
{
throw new IllegalStateException( "Bean definition for resource home "
+ resourceHome.getClass( ).getName( )
+ " does not initialize the 'portComponentName' property." );
}
LOG.info( "Binding " + resourceHome.getClass( ).getName( ) + " resource home instance to JNDI name '"
+ JndiConstants.CONTEXT_NAME_RESOURCE + "/" + portComponentName + "'..." );
Reference ref =
new Reference( resourceHome.getClass( ).getName( ),
new StringRefAddr( SpringBeanObjectFactory.ADDR_TYPE_SPRING_BEAN_ID, beanDefName ),
SpringBeanObjectFactory.class.getName( ), null );
try
{
resourceContext.rebind( portComponentName, ref );