if (requiredState != null)
context.setRequiredState(requiredState);
if (mode != null)
context.setMode(mode);
// Use any deployment classloader if present and the bean doesn't have one
ClassLoaderMetaData beanClassLoader = bean.getClassLoader();
if (beanClassLoader == null && deployment != null)
{
ClassLoaderMetaData deploymentClassLoader = deployment.getClassLoader();
if (deploymentClassLoader != null)
{
// If the deployment classloader is a bean, replace it with an injection
ValueMetaData classLoader = deploymentClassLoader.getClassLoader();
if (classLoader instanceof BeanMetaData)
{
classLoader = new AbstractDependencyValueMetaData(((BeanMetaData) classLoader).getName());
beanClassLoader = new AbstractClassLoaderMetaData(classLoader);
}