use of org.jboss.modules.Module in project wildfly by wildfly.
the class PersistenceProviderHandler method allDeploymentModuleClassLoaders.
/**
* returns the toplevel deployment module classloader and all subdeployment classloaders
*
* @param deploymentUnit
* @return
*/
private static Set<ClassLoader> allDeploymentModuleClassLoaders(DeploymentUnit deploymentUnit) {
Set<ClassLoader> deploymentClassLoaders = new HashSet<ClassLoader>();
final DeploymentUnit topDeploymentUnit = DeploymentUtils.getTopDeploymentUnit(deploymentUnit);
final Module toplevelModule = topDeploymentUnit.getAttachment(Attachments.MODULE);
if (toplevelModule != null) {
deploymentClassLoaders.add(toplevelModule.getClassLoader());
final List<DeploymentUnit> subDeployments = topDeploymentUnit.getAttachmentList(Attachments.SUB_DEPLOYMENTS);
for (DeploymentUnit subDeploymentUnit : subDeployments) {
final Module subDeploymentModule = subDeploymentUnit.getAttachment(Attachments.MODULE);
if (subDeploymentModule != null) {
deploymentClassLoaders.add(subDeploymentModule.getClassLoader());
}
}
}
return deploymentClassLoaders;
}
use of org.jboss.modules.Module in project wildfly by wildfly.
the class NamingBindingAdd method createObjectFactory.
private ObjectFactory createObjectFactory(OperationContext context, ModelNode model) throws OperationFailedException {
final ModuleIdentifier moduleID = ModuleIdentifier.fromString(NamingBindingResourceDefinition.MODULE.resolveModelAttribute(context, model).asString());
final String className = NamingBindingResourceDefinition.CLASS.resolveModelAttribute(context, model).asString();
final Module module;
try {
module = Module.getBootModuleLoader().loadModule(moduleID);
} catch (ModuleLoadException e) {
throw NamingLogger.ROOT_LOGGER.couldNotLoadModule(moduleID);
}
final ObjectFactory objectFactoryClassInstance;
final ClassLoader cl = WildFlySecurityManager.getCurrentContextClassLoaderPrivileged();
try {
WildFlySecurityManager.setCurrentContextClassLoaderPrivileged(module.getClassLoader());
final Class<?> clazz = module.getClassLoader().loadClass(className);
objectFactoryClassInstance = (ObjectFactory) clazz.newInstance();
} catch (ClassNotFoundException e) {
throw NamingLogger.ROOT_LOGGER.couldNotLoadClassFromModule(className, moduleID);
} catch (InstantiationException e) {
throw NamingLogger.ROOT_LOGGER.couldNotInstantiateClassInstanceFromModule(className, moduleID);
} catch (IllegalAccessException e) {
throw NamingLogger.ROOT_LOGGER.couldNotInstantiateClassInstanceFromModule(className, moduleID);
} catch (ClassCastException e) {
throw NamingLogger.ROOT_LOGGER.notAnInstanceOfObjectFactory(className, moduleID);
} finally {
WildFlySecurityManager.setCurrentContextClassLoaderPrivileged(cl);
}
return objectFactoryClassInstance;
}
use of org.jboss.modules.Module in project wildfly by wildfly.
the class ParsedKernelDeploymentProcessor method deploy.
/**
* Process a deployment for KernelDeployment configuration.
* Will install a {@code POJO} for each configured bean.
*
* @param phaseContext the deployment unit context
* @throws DeploymentUnitProcessingException
*
*/
public void deploy(DeploymentPhaseContext phaseContext) throws DeploymentUnitProcessingException {
final DeploymentUnit unit = phaseContext.getDeploymentUnit();
final List<KernelDeploymentXmlDescriptor> kdXmlDescriptors = unit.getAttachment(KernelDeploymentXmlDescriptor.ATTACHMENT_KEY);
if (kdXmlDescriptors == null || kdXmlDescriptors.isEmpty())
return;
final Module module = unit.getAttachment(Attachments.MODULE);
if (module == null)
throw PojoLogger.ROOT_LOGGER.noModuleFound(unit);
final ServiceTarget serviceTarget = phaseContext.getServiceTarget();
final DeploymentReflectionIndex index = unit.getAttachment(Attachments.REFLECTION_INDEX);
if (index == null)
throw PojoLogger.ROOT_LOGGER.missingReflectionIndex(unit);
for (KernelDeploymentXmlDescriptor kdXmlDescriptor : kdXmlDescriptors) {
final List<BeanMetaDataConfig> beanConfigs = kdXmlDescriptor.getBeans();
for (final BeanMetaDataConfig beanConfig : beanConfigs) {
describeBean(module, serviceTarget, index, beanConfig);
}
// TODO -- KD::classloader, KD::aliases
}
}
use of org.jboss.modules.Module in project wildfly by wildfly.
the class BaseBeanFactory method create.
@SuppressWarnings("unchecked")
public Object create() throws Throwable {
Module module = bmd.getModule().getInjectedModule().getValue();
Class<?> beanClass = module.getClassLoader().loadClass(bmd.getBeanClass());
DeploymentReflectionIndex index = DeploymentReflectionIndex.create();
BeanInfo beanInfo = new DefaultBeanInfo(index, beanClass);
Object result = BeanUtils.instantiateBean(bmd, beanInfo, index, module);
BeanUtils.configure(bmd, beanInfo, module, result, false);
BeanUtils.dispatchLifecycleJoinpoint(beanInfo, result, bmd.getCreate(), "create");
BeanUtils.dispatchLifecycleJoinpoint(beanInfo, result, bmd.getStart(), "start");
return result;
}
use of org.jboss.modules.Module in project wildfly by wildfly.
the class SecurityActions method getModuleClassLoader.
static ModuleClassLoader getModuleClassLoader(final String moduleSpec) throws ModuleLoadException {
ModuleLoader loader = Module.getCallerModuleLoader();
final Module module = loader.loadModule(ModuleIdentifier.fromString(moduleSpec));
GetModuleClassLoaderAction action = new GetModuleClassLoaderAction(module);
return WildFlySecurityManager.isChecking() ? doPrivileged(action) : action.run();
}
Aggregations