use of org.jboss.jandex.Index in project wildfly by wildfly.
the class WSHandlerChainAnnotationProcessor method deploy.
@Override
public void deploy(final DeploymentPhaseContext phaseContext) throws DeploymentUnitProcessingException {
final DeploymentUnit unit = phaseContext.getDeploymentUnit();
if (DeploymentTypeMarker.isType(DeploymentType.EAR, unit)) {
return;
}
List<ResourceRoot> resourceRoots = ASHelper.getResourceRoots(unit);
if (resourceRoots == null) {
return;
}
final WSEndpointHandlersMapping mapping = new WSEndpointHandlersMapping();
Index index = null;
for (final ResourceRoot resourceRoot : resourceRoots) {
index = resourceRoot.getAttachment(ANNOTATION_INDEX);
if (index != null) {
// process @HandlerChain annotations
processHandlerChainAnnotations(resourceRoot, resourceRoots, index, mapping);
}
}
if (!mapping.isEmpty()) {
unit.putAttachment(WS_ENDPOINT_HANDLERS_MAPPING_KEY, mapping);
}
}
use of org.jboss.jandex.Index in project wildfly by wildfly.
the class ServerInterceptorCache method loadServerInterceptors.
private void loadServerInterceptors() {
serverInterceptorsAroundInvoke = new ArrayList<>();
serverInterceptorsAroundTimeout = new ArrayList<>();
for (final ServerInterceptorMetaData si : serverInterceptorMetaData) {
final Class<?> interceptorClass;
final ModuleIdentifier moduleId = ModuleIdentifier.create(si.getModule());
try {
final Module module = Module.getCallerModuleLoader().loadModule(moduleId);
interceptorClass = ClassLoadingUtils.loadClass(si.getClazz(), module);
} catch (ModuleLoadException e) {
throw EjbLogger.ROOT_LOGGER.cannotLoadServerInterceptorModule(moduleId, e);
} catch (ClassNotFoundException e) {
throw EeLogger.ROOT_LOGGER.cannotLoadInterceptor(e, si.getClazz());
}
final Index index = buildIndexForClass(interceptorClass);
serverInterceptorsAroundInvoke.addAll(findAnnotatedMethods(interceptorClass, index, AroundInvoke.class));
serverInterceptorsAroundTimeout.addAll(findAnnotatedMethods(interceptorClass, index, AroundTimeout.class));
}
}
use of org.jboss.jandex.Index in project wildfly by wildfly.
the class EjbValidationsUtilTest method buildClassInfoForClass.
private ClassInfo buildClassInfoForClass(String mdbClassName) {
String mdbClassNameAsResource = mdbClassName.replaceAll("\\.", "/").concat(".class");
Index index = indexStream(getClass().getClassLoader().getResourceAsStream(mdbClassNameAsResource)).complete();
return index.getClassByName(DotName.createSimple(mdbClassName));
}
use of org.jboss.jandex.Index in project wildfly by wildfly.
the class JBossPersistenceMetaDataFactory method findPersistenceTypeNames.
private Set<String> findPersistenceTypeNames(PersistenceUnitMetadata pu) {
synchronized (CACHED_TYPENAMES) {
Set<String> typeNames = CACHED_TYPENAMES.get(pu);
if (typeNames != null) {
return typeNames;
}
}
Set<String> persistenceTypeNames = new HashSet<String>();
for (Map.Entry<URL, Index> entry : pu.getAnnotationIndex().entrySet()) {
List<AnnotationInstance> instances = entry.getValue().getAnnotations(DotName.createSimple(Entity.class.getName()));
for (AnnotationInstance instance : instances) {
AnnotationTarget target = instance.target();
if (target instanceof ClassInfo) {
ClassInfo classInfo = (ClassInfo) target;
persistenceTypeNames.add(classInfo.name().toString());
}
}
}
synchronized (CACHED_TYPENAMES) {
CACHED_TYPENAMES.put(pu, persistenceTypeNames);
}
return persistenceTypeNames;
}
use of org.jboss.jandex.Index in project wildfly by wildfly.
the class ParsedRaDeploymentProcessor method process.
public static ServiceBuilder<ResourceAdapterDeployment> process(final ConnectorXmlDescriptor connectorXmlDescriptor, final IronJacamarXmlDescriptor ironJacamarXmlDescriptor, final ClassLoader classLoader, final ServiceTarget serviceTarget, final Map<ResourceRoot, Index> annotationIndexes, final ServiceName duServiceName, final ManagementResourceRegistration registration, Resource deploymentResource, final CapabilityServiceSupport support) throws DeploymentUnitProcessingException {
Connector cmd = connectorXmlDescriptor != null ? connectorXmlDescriptor.getConnector() : null;
final Activation activation = ironJacamarXmlDescriptor != null ? ironJacamarXmlDescriptor.getIronJacamar() : null;
try {
// Annotation merging
Annotations annotator = new Annotations();
if (annotationIndexes != null && annotationIndexes.size() > 0) {
DEPLOYMENT_CONNECTOR_LOGGER.debugf("ParsedRaDeploymentProcessor: Found %d annotationIndexes", annotationIndexes.size());
for (Index index : annotationIndexes.values()) {
// Don't apply any empty indexes, as IronJacamar doesn't like that atm.
if (index.getKnownClasses() != null && !index.getKnownClasses().isEmpty()) {
AnnotationRepository repository = new JandexAnnotationRepositoryImpl(index, classLoader);
cmd = annotator.merge(cmd, repository, classLoader);
DEPLOYMENT_CONNECTOR_LOGGER.debugf("ParsedRaDeploymentProcessor: CMD=%s", cmd);
}
}
}
if (annotationIndexes == null || annotationIndexes.size() == 0)
DEPLOYMENT_CONNECTOR_LOGGER.debugf("ParsedRaDeploymentProcessor: Found 0 annotationIndexes");
// FIXME: when the connector is null the Iron Jacamar data is ignored
if (cmd != null) {
// Validate metadata
cmd.validate();
// Merge metadata
cmd = (new Merger()).mergeConnectorWithCommonIronJacamar(activation, cmd);
}
TransactionSupportEnum transactionSupport = TransactionSupportEnum.NoTransaction;
if (cmd != null && cmd.getResourceadapter() != null && cmd.getResourceadapter().getOutboundResourceadapter() != null) {
transactionSupport = cmd.getResourceadapter().getOutboundResourceadapter().getTransactionSupport();
}
if (activation != null && activation.getTransactionSupport() != null) {
transactionSupport = activation.getTransactionSupport();
}
final ServiceName deployerServiceName = ConnectorServices.RESOURCE_ADAPTER_DEPLOYER_SERVICE_PREFIX.append(connectorXmlDescriptor.getDeploymentName());
final ResourceAdapterDeploymentService raDeploymentService = new ResourceAdapterDeploymentService(connectorXmlDescriptor, cmd, activation, classLoader, deployerServiceName, duServiceName, registration, deploymentResource);
// Create the service
ServiceBuilder<ResourceAdapterDeployment> builder = Services.addServerExecutorDependency(serviceTarget.addService(deployerServiceName, raDeploymentService), raDeploymentService.getExecutorServiceInjector()).addDependency(ConnectorServices.IRONJACAMAR_MDR, AS7MetadataRepository.class, raDeploymentService.getMdrInjector()).addDependency(ConnectorServices.RA_REPOSITORY_SERVICE, ResourceAdapterRepository.class, raDeploymentService.getRaRepositoryInjector()).addDependency(ConnectorServices.MANAGEMENT_REPOSITORY_SERVICE, ManagementRepository.class, raDeploymentService.getManagementRepositoryInjector()).addDependency(ConnectorServices.RESOURCE_ADAPTER_REGISTRY_SERVICE, ResourceAdapterDeploymentRegistry.class, raDeploymentService.getRegistryInjector()).addDependency(support.getCapabilityServiceName(ConnectorServices.TRANSACTION_INTEGRATION_CAPABILITY_NAME), TransactionIntegration.class, raDeploymentService.getTxIntegrationInjector()).addDependency(ConnectorServices.CONNECTOR_CONFIG_SERVICE, JcaSubsystemConfiguration.class, raDeploymentService.getConfigInjector());
builder.requires(ConnectorServices.IDLE_REMOVER_SERVICE);
builder.requires(ConnectorServices.CONNECTION_VALIDATOR_SERVICE);
builder.requires(support.getCapabilityServiceName(NamingService.CAPABILITY_NAME));
if (transactionSupport == null || transactionSupport.equals(TransactionSupportEnum.NoTransaction)) {
builder.addDependency(ConnectorServices.NON_TX_CCM_SERVICE, CachedConnectionManager.class, raDeploymentService.getCcmInjector());
} else {
builder.addDependency(ConnectorServices.CCM_SERVICE, CachedConnectionManager.class, raDeploymentService.getCcmInjector());
}
if (activation != null && ActivationSecurityUtil.isLegacySecurityRequired(activation)) {
throw ConnectorLogger.DS_DEPLOYER_LOGGER.legacySecurityNotAvailableForRa(connectorXmlDescriptor.getDeploymentName());
}
return builder;
} catch (Throwable t) {
throw new DeploymentUnitProcessingException(t);
}
}
Aggregations