Search in sources :

Example 16 with CapabilityServiceSupport

use of org.jboss.as.controller.capability.CapabilityServiceSupport in project wildfly by wildfly.

the class DistributableSingleSignOnManagerServiceConfigurator method configure.

@Override
public ServiceConfigurator configure(OperationContext context) {
    String securityDomainName = this.configuration.getSecurityDomainName();
    Supplier<String> generator = this.configuration.getIdentifierGenerator();
    CapabilityServiceSupport support = context.getCapabilityServiceSupport();
    SupplierDependency<DistributableSSOManagementProvider> provider = getProvider(context, securityDomainName);
    ServiceName managerServiceName = this.getServiceName().append("manager");
    this.manager = new ServiceSupplierDependency<>(managerServiceName);
    this.provider = provider;
    this.installer = new Consumer<ServiceTarget>() {

        @Override
        public void accept(ServiceTarget target) {
            ServiceConfigurator factoryConfigurator = provider.get().getServiceConfigurator(securityDomainName).configure(support);
            factoryConfigurator.build(target).install();
            SupplierDependency<SSOManagerFactory<ElytronAuthentication, String, Map.Entry<String, URI>, Batch>> factoryDependency = new ServiceSupplierDependency<>(factoryConfigurator);
            SupplierDependency<SessionIdGenerator> generatorDependency = new SimpleSupplierDependency<>(new SessionIdGeneratorAdapter(generator));
            new SSOManagerServiceConfigurator<>(managerServiceName, factoryDependency, generatorDependency, new LocalSSOContextFactory()).configure(support).build(target).install();
        }
    };
    return this;
}
Also used : ServiceTarget(org.jboss.msc.service.ServiceTarget) SupplierDependency(org.wildfly.clustering.service.SupplierDependency) SimpleSupplierDependency(org.wildfly.clustering.service.SimpleSupplierDependency) ServiceSupplierDependency(org.wildfly.clustering.service.ServiceSupplierDependency) SSOManagerServiceConfigurator(org.wildfly.clustering.web.undertow.sso.SSOManagerServiceConfigurator) DistributableSSOManagementProvider(org.wildfly.clustering.web.sso.DistributableSSOManagementProvider) CapabilityServiceSupport(org.jboss.as.controller.capability.CapabilityServiceSupport) Entry(java.util.Map.Entry) ServiceName(org.jboss.msc.service.ServiceName) Batch(org.wildfly.clustering.ee.Batch) ServiceConfigurator(org.wildfly.clustering.service.ServiceConfigurator) SSOManagerServiceConfigurator(org.wildfly.clustering.web.undertow.sso.SSOManagerServiceConfigurator) CapabilityServiceConfigurator(org.jboss.as.clustering.controller.CapabilityServiceConfigurator)

Example 17 with CapabilityServiceSupport

use of org.jboss.as.controller.capability.CapabilityServiceSupport in project wildfly by wildfly.

the class EeSubsystemAdd method performBoottime.

protected void performBoottime(final OperationContext context, final ModelNode operation, final Resource resource) throws OperationFailedException {
    ModelNode model = resource.getModel();
    final EEJndiViewExtension extension = new EEJndiViewExtension();
    context.getServiceTarget().addService(EEJndiViewExtension.SERVICE_NAME, extension).addDependency(JndiViewExtensionRegistry.SERVICE_NAME, JndiViewExtensionRegistry.class, extension.getRegistryInjector()).install();
    final boolean appclient = context.getProcessType() == ProcessType.APPLICATION_CLIENT;
    final ModelNode globalModules = GlobalModulesDefinition.INSTANCE.resolveModelAttribute(context, model);
    // see if the ear subdeployment isolation flag is set. By default, we don't isolate subdeployments, so that
    // they can see each other's classes.
    final boolean earSubDeploymentsIsolated = EeSubsystemRootResource.EAR_SUBDEPLOYMENTS_ISOLATED.resolveModelAttribute(context, model).asBoolean();
    final boolean specDescriptorPropertyReplacement = EeSubsystemRootResource.SPEC_DESCRIPTOR_PROPERTY_REPLACEMENT.resolveModelAttribute(context, model).asBoolean();
    final boolean jbossDescriptorPropertyReplacement = EeSubsystemRootResource.JBOSS_DESCRIPTOR_PROPERTY_REPLACEMENT.resolveModelAttribute(context, model).asBoolean();
    final boolean ejbAnnotationPropertyReplacement = EeSubsystemRootResource.ANNOTATION_PROPERTY_REPLACEMENT.resolveModelAttribute(context, model).asBoolean();
    moduleDependencyProcessor.setGlobalModules(GlobalModulesDefinition.createModuleList(context, globalModules));
    isolationProcessor.setEarSubDeploymentsIsolated(earSubDeploymentsIsolated);
    specDescriptorPropertyReplacementProcessor.setDescriptorPropertyReplacement(specDescriptorPropertyReplacement);
    jbossDescriptorPropertyReplacementProcessor.setDescriptorPropertyReplacement(jbossDescriptorPropertyReplacement);
    ejbAnnotationPropertyReplacementProcessor.setDescriptorPropertyReplacement(ejbAnnotationPropertyReplacement);
    CapabilityServiceSupport capabilitySupport = context.getCapabilityServiceSupport();
    final boolean elytronJacc = capabilitySupport.hasCapability(ELYTRON_JACC_CAPABILITY);
    final boolean legacyJacc = !elytronJacc && capabilitySupport.hasCapability(LEGACY_JACC_CAPABILITY);
    context.addStep(new AbstractDeploymentChainStep() {

        protected void execute(DeploymentProcessorTarget processorTarget) {
            ROOT_LOGGER.debug("Activating EE subsystem");
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.STRUCTURE, Phase.STRUCTURE_EE_DEPLOYMENT_PROPERTIES, new DeploymentPropertiesProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.STRUCTURE, Phase.STRUCTURE_EE_DEPLOYMENT_PROPERTY_RESOLVER, new DeploymentPropertyResolverProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.STRUCTURE, Phase.STRUCTURE_EE_FUNCTIONAL_RESOLVERS, new FunctionalResolverProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.STRUCTURE, Phase.STRUCTURE_EE_SYSTEM_PROPERTY_RESOLVER, new SystemPropertyResolverProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.STRUCTURE, Phase.STRUCTURE_EE_PROPERTY_RESOLVER, new PropertyResolverProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.STRUCTURE, Phase.STRUCTURE_REGISTER_JBOSS_ALL_EE_APP, new JBossAllXmlParserRegisteringProcessor<JBossAppMetaData>(AppJBossAllParser.ROOT_ELEMENT, AppJBossAllParser.ATTACHMENT_KEY, new AppJBossAllParser()));
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.STRUCTURE, Phase.STRUCTURE_EE_SPEC_DESC_PROPERTY_REPLACEMENT, specDescriptorPropertyReplacementProcessor);
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.STRUCTURE, Phase.STRUCTURE_EE_JBOSS_DESC_PROPERTY_REPLACEMENT, jbossDescriptorPropertyReplacementProcessor);
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.STRUCTURE, Phase.STRUCTURE_EE_EJB_ANNOTATION_PROPERTY_REPLACEMENT, ejbAnnotationPropertyReplacementProcessor);
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.STRUCTURE, Phase.STRUCTURE_EAR_DEPLOYMENT_INIT, new EarInitializationProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.STRUCTURE, Phase.STRUCTURE_EAR_APP_XML_PARSE, new EarMetaDataParsingProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.STRUCTURE, Phase.STRUCTURE_JBOSS_EJB_CLIENT_XML_PARSE, new EJBClientDescriptorParsingProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.STRUCTURE, Phase.STRUCTURE_EJB_EAR_APPLICATION_NAME, new EarApplicationNameProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.STRUCTURE, Phase.STRUCTURE_EAR, new EarStructureProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.STRUCTURE, Phase.STRUCTURE_EJB_JAR_IN_EAR, new EjbJarDeploymentProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.STRUCTURE, Phase.STRUCTURE_APPLICATION_CLIENT_IN_EAR, new ApplicationClientDeploymentProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.STRUCTURE, Phase.STRUCTURE_MANAGED_BEAN_JAR_IN_EAR, new ManagedBeanSubDeploymentMarkingProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.STRUCTURE, Phase.STRUCTURE_EAR_SUB_DEPLYOMENTS_ISOLATED, isolationProcessor);
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.STRUCTURE, Phase.STRUCTURE_EE_MODULE_INIT, new EEModuleInitialProcessor(context.getProcessType() == ProcessType.APPLICATION_CLIENT));
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.STRUCTURE, Phase.STRUCTURE_EE_RESOURCE_INJECTION_REGISTRY, new ResourceReferenceRegistrySetupProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.STRUCTURE, Phase.STRUCTURE_GLOBAL_MODULES, moduleDependencyProcessor);
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.STRUCTURE, Phase.STRUCTURE_GLOBAL_DIRECTORIES, directoryDependencyProcessor);
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.PARSE, Phase.PARSE_EE_MODULE_NAME, new EEModuleNameProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.PARSE, Phase.PARSE_EE_ANNOTATIONS, new EEAnnotationProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.PARSE, Phase.PARSE_LIFECYCLE_ANNOTATION, new LifecycleAnnotationParsingProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.PARSE, Phase.PARSE_AROUNDINVOKE_ANNOTATION, new AroundInvokeAnnotationParsingProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.PARSE, Phase.PARSE_DISTINCT_NAME, new EEDistinctNameProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.PARSE, Phase.PARSE_EAR_MESSAGE_DESTINATIONS, new EarMessageDestinationProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.PARSE, Phase.PARSE_MANAGED_BEAN_ANNOTATION, new ManagedBeanAnnotationProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.PARSE, Phase.PARSE_DESCRIPTOR_LIFECYCLE_METHOD_RESOLUTION, new DescriptorEnvironmentLifecycleMethodProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.DEPENDENCIES, Phase.DEPENDENCIES_EE_PERMISSIONS, new EEDefaultPermissionsProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.DEPENDENCIES, Phase.DEPENDENCIES_MANAGED_BEAN, new JavaEEDependencyProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.DEPENDENCIES, Phase.DEPENDENCIES_EE_CLASS_DESCRIPTIONS, new ApplicationClassesAggregationProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EAR_DEPENDENCY, new EarDependencyProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_INITIALIZE_IN_ORDER, new InitializeInOrderProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_INJECTION_ANNOTATION, new ResourceInjectionAnnotationParsingProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_ENV_ENTRY, new ResourceReferenceProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_INTERCEPTOR_ANNOTATIONS, new InterceptorAnnotationProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_NAMING_CONTEXT, new ModuleContextProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_IN_APP_CLIENT, new InApplicationClientBindingProcessor(appclient));
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EE_INSTANCE_NAME, new InstanceNameBindingProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_APP_NAMING_CONTEXT, new ApplicationContextProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EE_CONCURRENT_CONTEXT, new EEConcurrentContextProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EE_STARTUP_COUNTDOWN, new EEStartupCountdownProcessor());
            if (legacyJacc || elytronJacc) {
                processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.INSTALL, Phase.INSTALL_JACC_POLICY, new JaccEarDeploymentProcessor(elytronJacc ? ELYTRON_JACC_CAPABILITY : LEGACY_JACC_CAPABILITY));
            }
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.INSTALL, Phase.INSTALL_RESOLVE_MESSAGE_DESTINATIONS, new MessageDestinationResolutionProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.INSTALL, Phase.INSTALL_COMPONENT_AGGREGATION, new ComponentAggregationProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.INSTALL, Phase.INSTALL_DEFAULT_BINDINGS_EE_CONCURRENCY, new EEConcurrentDefaultBindingProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.INSTALL, Phase.INSTALL_MODULE_JNDI_BINDINGS, new ModuleJndiBindingProcessor(appclient));
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.INSTALL, Phase.INSTALL_EE_MODULE_CONFIG, new EEModuleConfigurationProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.INSTALL, Phase.INSTALL_EE_COMPONENT, new ComponentInstallProcessor());
            processorTarget.addDeploymentProcessor(EeExtension.SUBSYSTEM_NAME, Phase.CLEANUP, Phase.CLEANUP_EE, new EECleanUpProcessor());
        }
    }, OperationContext.Stage.RUNTIME);
    context.getServiceTarget().addService(ReflectiveClassIntrospector.SERVICE_NAME, new ReflectiveClassIntrospector()).install();
    // installs the service which manages managed executor's hung task periodic termination
    new ManagedExecutorHungTasksPeriodicTerminationService().install(context);
}
Also used : EarMetaDataParsingProcessor(org.jboss.as.ee.structure.EarMetaDataParsingProcessor) ApplicationClientDeploymentProcessor(org.jboss.as.ee.structure.ApplicationClientDeploymentProcessor) DescriptorEnvironmentLifecycleMethodProcessor(org.jboss.as.ee.component.deployers.DescriptorEnvironmentLifecycleMethodProcessor) CapabilityServiceSupport(org.jboss.as.controller.capability.CapabilityServiceSupport) InterceptorAnnotationProcessor(org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor) LifecycleAnnotationParsingProcessor(org.jboss.as.ee.component.deployers.LifecycleAnnotationParsingProcessor) JndiViewExtensionRegistry(org.jboss.as.naming.management.JndiViewExtensionRegistry) EarInitializationProcessor(org.jboss.as.ee.structure.EarInitializationProcessor) ManagedExecutorHungTasksPeriodicTerminationService(org.jboss.as.ee.concurrent.service.ManagedExecutorHungTasksPeriodicTerminationService) EEModuleInitialProcessor(org.jboss.as.ee.component.deployers.EEModuleInitialProcessor) MessageDestinationResolutionProcessor(org.jboss.as.ee.component.deployers.MessageDestinationResolutionProcessor) JavaEEDependencyProcessor(org.jboss.as.ee.managedbean.processors.JavaEEDependencyProcessor) ResourceReferenceRegistrySetupProcessor(org.jboss.as.ee.component.deployers.ResourceReferenceRegistrySetupProcessor) ComponentInstallProcessor(org.jboss.as.ee.component.deployers.ComponentInstallProcessor) ResourceInjectionAnnotationParsingProcessor(org.jboss.as.ee.component.deployers.ResourceInjectionAnnotationParsingProcessor) AbstractDeploymentChainStep(org.jboss.as.server.AbstractDeploymentChainStep) EEDefaultPermissionsProcessor(org.jboss.as.ee.component.deployers.EEDefaultPermissionsProcessor) ModelNode(org.jboss.dmr.ModelNode) InitializeInOrderProcessor(org.jboss.as.ee.structure.InitializeInOrderProcessor) ModuleContextProcessor(org.jboss.as.ee.naming.ModuleContextProcessor) EEAnnotationProcessor(org.jboss.as.ee.component.deployers.EEAnnotationProcessor) SystemPropertyResolverProcessor(org.jboss.as.ee.metadata.property.SystemPropertyResolverProcessor) EarApplicationNameProcessor(org.jboss.as.ee.component.deployers.EarApplicationNameProcessor) EEModuleNameProcessor(org.jboss.as.ee.component.deployers.EEModuleNameProcessor) EEModuleConfigurationProcessor(org.jboss.as.ee.component.deployers.EEModuleConfigurationProcessor) InstanceNameBindingProcessor(org.jboss.as.ee.naming.InstanceNameBindingProcessor) FunctionalResolverProcessor(org.jboss.as.ee.metadata.property.FunctionalResolverProcessor) ModuleJndiBindingProcessor(org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor) JaccEarDeploymentProcessor(org.jboss.as.ee.security.JaccEarDeploymentProcessor) ApplicationContextProcessor(org.jboss.as.ee.naming.ApplicationContextProcessor) ComponentAggregationProcessor(org.jboss.as.ee.structure.ComponentAggregationProcessor) EjbJarDeploymentProcessor(org.jboss.as.ee.structure.EjbJarDeploymentProcessor) EJBClientDescriptorParsingProcessor(org.jboss.as.ee.structure.EJBClientDescriptorParsingProcessor) EEDistinctNameProcessor(org.jboss.as.ee.component.deployers.EEDistinctNameProcessor) ApplicationClassesAggregationProcessor(org.jboss.as.ee.component.deployers.ApplicationClassesAggregationProcessor) DeploymentPropertiesProcessor(org.jboss.as.ee.metadata.property.DeploymentPropertiesProcessor) JBossAllXmlParserRegisteringProcessor(org.jboss.as.server.deployment.jbossallxml.JBossAllXmlParserRegisteringProcessor) ManagedBeanSubDeploymentMarkingProcessor(org.jboss.as.ee.managedbean.processors.ManagedBeanSubDeploymentMarkingProcessor) EarMessageDestinationProcessor(org.jboss.as.ee.component.deployers.EarMessageDestinationProcessor) ReflectiveClassIntrospector(org.jboss.as.ee.component.ReflectiveClassIntrospector) ResourceReferenceProcessor(org.jboss.as.ee.component.deployers.ResourceReferenceProcessor) EEConcurrentDefaultBindingProcessor(org.jboss.as.ee.concurrent.deployers.EEConcurrentDefaultBindingProcessor) SystemPropertyResolverProcessor(org.jboss.as.ee.metadata.property.SystemPropertyResolverProcessor) PropertyResolverProcessor(org.jboss.as.ee.metadata.property.PropertyResolverProcessor) DeploymentPropertyResolverProcessor(org.jboss.as.ee.metadata.property.DeploymentPropertyResolverProcessor) AppJBossAllParser(org.jboss.as.ee.structure.AppJBossAllParser) EarStructureProcessor(org.jboss.as.ee.structure.EarStructureProcessor) EEConcurrentContextProcessor(org.jboss.as.ee.concurrent.deployers.EEConcurrentContextProcessor) DeploymentProcessorTarget(org.jboss.as.server.DeploymentProcessorTarget) EarDependencyProcessor(org.jboss.as.ee.structure.EarDependencyProcessor) EECleanUpProcessor(org.jboss.as.ee.component.deployers.EECleanUpProcessor) AroundInvokeAnnotationParsingProcessor(org.jboss.as.ee.component.deployers.AroundInvokeAnnotationParsingProcessor) ManagedBeanAnnotationProcessor(org.jboss.as.ee.managedbean.processors.ManagedBeanAnnotationProcessor) DeploymentPropertyResolverProcessor(org.jboss.as.ee.metadata.property.DeploymentPropertyResolverProcessor) InApplicationClientBindingProcessor(org.jboss.as.ee.naming.InApplicationClientBindingProcessor)

Example 18 with CapabilityServiceSupport

use of org.jboss.as.controller.capability.CapabilityServiceSupport in project wildfly by wildfly.

the class TracingDeploymentProcessor method deploy.

@Override
public void deploy(DeploymentPhaseContext deploymentPhaseContext) throws DeploymentUnitProcessingException {
    ROOT_LOGGER.processingDeployment();
    final DeploymentUnit deploymentUnit = deploymentPhaseContext.getDeploymentUnit();
    if (DeploymentTypeMarker.isType(DeploymentType.EAR, deploymentUnit)) {
        return;
    }
    final CapabilityServiceSupport support = deploymentUnit.getAttachment(Attachments.CAPABILITY_SERVICE_SUPPORT);
    try {
        final WeldCapability weldCapability = support.getCapabilityRuntimeAPI(WELD_CAPABILITY_NAME, WeldCapability.class);
        if (!weldCapability.isPartOfWeldDeployment(deploymentUnit)) {
            // SmallRye Jakarta RESTful Web Services require Jakarta Contexts and Dependency Injection. Without Jakarta Contexts and Dependency Injection, there's no integration needed
            ROOT_LOGGER.noCdiDeployment();
            return;
        }
    } catch (CapabilityServiceSupport.NoSuchCapabilityException e) {
        // We should not be here since the subsystem depends on weld capability. Just in case ...
        throw new DeploymentUnitProcessingException(ROOT_LOGGER.deploymentRequiresCapability(deploymentPhaseContext.getDeploymentUnit().getName(), WELD_CAPABILITY_NAME));
    }
    injectTracer(deploymentPhaseContext, support);
}
Also used : DeploymentUnitProcessingException(org.jboss.as.server.deployment.DeploymentUnitProcessingException) WeldCapability(org.jboss.as.weld.WeldCapability) DeploymentUnit(org.jboss.as.server.deployment.DeploymentUnit) CapabilityServiceSupport(org.jboss.as.controller.capability.CapabilityServiceSupport)

Example 19 with CapabilityServiceSupport

use of org.jboss.as.controller.capability.CapabilityServiceSupport in project wildfly by wildfly.

the class SecuritySubsystemRootResourceDefinition method registerAttributes.

@Override
public void registerAttributes(final ManagementResourceRegistration resourceRegistration) {
    resourceRegistration.registerReadWriteAttribute(DEEP_COPY_SUBJECT_MODE, null, new ReloadRequiredWriteAttributeHandler(DEEP_COPY_SUBJECT_MODE));
    resourceRegistration.registerReadWriteAttribute(INITIALIZE_JACC, null, new ReloadRequiredWriteAttributeHandler(INITIALIZE_JACC) {

        @Override
        protected boolean applyUpdateToRuntime(OperationContext context, ModelNode operation, String attributeName, ModelNode resolvedValue, ModelNode currentValue, HandbackHolder<Void> voidHandback) throws OperationFailedException {
            // As the PolicyConfigurationFactory is a singleton, once it's initialized any changes will require a restart
            CapabilityServiceSupport capabilitySupport = context.getCapabilityServiceSupport();
            final boolean elytronJacc = capabilitySupport.hasCapability("org.wildfly.security.jacc-policy");
            if (resolvedValue.asBoolean() == true && elytronJacc) {
                throw SecurityLogger.ROOT_LOGGER.unableToEnableJaccSupport();
            }
            return super.applyUpdateToRuntime(context, operation, attributeName, resolvedValue, currentValue, voidHandback);
        }

        @Override
        protected void recordCapabilitiesAndRequirements(OperationContext context, AttributeDefinition attributeDefinition, ModelNode newValue, ModelNode oldValue) {
            super.recordCapabilitiesAndRequirements(context, attributeDefinition, newValue, oldValue);
            boolean shouldRegister = resolveValue(context, attributeDefinition, newValue);
            boolean registered = resolveValue(context, attributeDefinition, oldValue);
            if (!shouldRegister) {
                context.deregisterCapability(JACC_CAPABILITY.getName());
            }
            if (!registered && shouldRegister) {
                context.registerCapability(JACC_CAPABILITY);
            // do not register the JACC_CAPABILITY_TOMBSTONE at this point - it will be registered on restart
            }
        }

        private boolean resolveValue(OperationContext context, AttributeDefinition attributeDefinition, ModelNode node) {
            try {
                return attributeDefinition.resolveValue(context, node).asBoolean();
            } catch (OperationFailedException e) {
                throw new IllegalStateException(e);
            }
        }
    });
}
Also used : OperationContext(org.jboss.as.controller.OperationContext) OperationFailedException(org.jboss.as.controller.OperationFailedException) SimpleAttributeDefinition(org.jboss.as.controller.SimpleAttributeDefinition) AttributeDefinition(org.jboss.as.controller.AttributeDefinition) ModelNode(org.jboss.dmr.ModelNode) ReloadRequiredWriteAttributeHandler(org.jboss.as.controller.ReloadRequiredWriteAttributeHandler) CapabilityServiceSupport(org.jboss.as.controller.capability.CapabilityServiceSupport)

Example 20 with CapabilityServiceSupport

use of org.jboss.as.controller.capability.CapabilityServiceSupport in project wildfly by wildfly.

the class SingletonDeploymentProcessor method deploy.

@Override
public void deploy(DeploymentPhaseContext context) throws DeploymentUnitProcessingException {
    DeploymentUnit unit = context.getDeploymentUnit();
    if (unit.getParent() == null) {
        SingletonPolicy policy = context.getAttachment(POLICY_KEY);
        if (policy != null) {
            CapabilityServiceSupport support = unit.getAttachment(Attachments.CAPABILITY_SERVICE_SUPPORT);
            // Restart the deployment using the attached phase builder, but only if a builder was not already attached
            if (unit.putAttachment(Attachments.DEPLOYMENT_UNIT_PHASE_BUILDER, new SingletonDeploymentUnitPhaseBuilder(support, policy)) == null) {
                SingletonLogger.ROOT_LOGGER.singletonDeploymentDetected(policy);
                ServiceController<?> controller = context.getServiceRegistry().getRequiredService(unit.getServiceName());
                controller.addListener(this);
                controller.setMode(Mode.NEVER);
            }
        }
    }
}
Also used : SingletonPolicy(org.wildfly.clustering.singleton.SingletonPolicy) DeploymentUnit(org.jboss.as.server.deployment.DeploymentUnit) CapabilityServiceSupport(org.jboss.as.controller.capability.CapabilityServiceSupport)

Aggregations

CapabilityServiceSupport (org.jboss.as.controller.capability.CapabilityServiceSupport)76 DeploymentUnit (org.jboss.as.server.deployment.DeploymentUnit)39 ServiceName (org.jboss.msc.service.ServiceName)38 ServiceTarget (org.jboss.msc.service.ServiceTarget)25 WeldCapability (org.jboss.as.weld.WeldCapability)19 DeploymentUnitProcessingException (org.jboss.as.server.deployment.DeploymentUnitProcessingException)18 Module (org.jboss.modules.Module)16 ServiceBuilder (org.jboss.msc.service.ServiceBuilder)14 ComponentDescription (org.jboss.as.ee.component.ComponentDescription)10 HashMap (java.util.HashMap)9 DeploymentPhaseContext (org.jboss.as.server.deployment.DeploymentPhaseContext)9 ComponentConfiguration (org.jboss.as.ee.component.ComponentConfiguration)8 EEModuleDescription (org.jboss.as.ee.component.EEModuleDescription)8 ValidatorFactory (javax.validation.ValidatorFactory)7 ModuleSpecification (org.jboss.as.server.deployment.module.ModuleSpecification)7 HashSet (java.util.HashSet)6 TransactionSynchronizationRegistry (javax.transaction.TransactionSynchronizationRegistry)6 ComponentConfigurator (org.jboss.as.ee.component.ComponentConfigurator)6 ModelNode (org.jboss.dmr.ModelNode)6 ModuleLoader (org.jboss.modules.ModuleLoader)6