@Override protected void performBoottime( final OperationContext context, ModelNode operation, final ModelNode model) throws OperationFailedException { // setup IIOP related stuff // This goes here rather than in EJB3IIOPAdd as it affects the server when it is acting as an // iiop client // setup our dynamic stub factory DelegatingStubFactoryFactory.setOverriddenDynamicFactory(new DynamicStubFactoryFactory()); // setup the substitution service, that translates between ejb proxies and IIOP stubs final RemoteObjectSubstitutionService substitutionService = new RemoteObjectSubstitutionService(); context .getServiceTarget() .addService(RemoteObjectSubstitutionService.SERVICE_NAME, substitutionService) .addDependency( DeploymentRepository.SERVICE_NAME, DeploymentRepository.class, substitutionService.getDeploymentRepositoryInjectedValue()) .install(); RemoteObjectSubstitutionManager.setRemoteObjectSubstitution(substitutionService); // setup ejb: namespace EjbNamingContextSetup.setupEjbNamespace(); // TODO: this is a bit of a hack InitialContext.addUrlContextFactory("ejb", new ejbURLContextFactory()); final boolean appclient = context.getProcessType() == ProcessType.APPLICATION_CLIENT; final ModelNode defaultDistinctName = EJB3SubsystemRootResourceDefinition.DEFAULT_DISTINCT_NAME.resolveModelAttribute( context, model); final DefaultDistinctNameService defaultDistinctNameService = new DefaultDistinctNameService( defaultDistinctName.isDefined() ? defaultDistinctName.asString() : null); context .getServiceTarget() .addService(DefaultDistinctNameService.SERVICE_NAME, defaultDistinctNameService) .install(); // set the default security domain name in the deployment unit processor, configured at the // subsytem level final ModelNode defaultSecurityDomainModelNode = EJB3SubsystemRootResourceDefinition.DEFAULT_SECURITY_DOMAIN.resolveModelAttribute( context, model); final String defaultSecurityDomain = defaultSecurityDomainModelNode.isDefined() ? defaultSecurityDomainModelNode.asString() : null; this.defaultSecurityDomainDeploymentProcessor.setDefaultSecurityDomainName( defaultSecurityDomain); // set the default security domain name in the deployment unit processor, configured at the // subsytem level final ModelNode defaultMissingMethod = EJB3SubsystemRootResourceDefinition.DEFAULT_MISSING_METHOD_PERMISSIONS_DENY_ACCESS .resolveModelAttribute(context, model); final boolean defaultMissingMethodValue = defaultMissingMethod.asBoolean(); this.missingMethodPermissionsDenyAccessMergingProcessor.setDenyAccessByDefault( defaultMissingMethodValue); context.addStep( new AbstractDeploymentChainStep() { @Override protected void execute(DeploymentProcessorTarget processorTarget) { // DUP's that are used even for app client deployments processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.STRUCTURE, Phase.STRUCTURE_REGISTER_JBOSS_ALL_EJB, new JBossAllXmlParserRegisteringProcessor<EjbJarMetaData>( EjbJarJBossAllParser.ROOT_ELEMENT, EjbJarJBossAllParser.ATTACHMENT_KEY, new EjbJarJBossAllParser())); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.PARSE, Phase.PARSE_EJB_DEFAULT_DISTINCT_NAME, new EjbDefaultDistinctNameProcessor(defaultDistinctNameService)); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.PARSE, Phase.PARSE_EJB_CONTEXT_BINDING, new EjbContextJndiBindingProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.PARSE, Phase.PARSE_EJB_DEPLOYMENT, new EjbJarParsingDeploymentUnitProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.PARSE, Phase.PARSE_CREATE_COMPONENT_DESCRIPTIONS, new AnnotatedEJBComponentDescriptionDeploymentUnitProcessor(appclient)); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.PARSE, Phase.PARSE_EJB_SESSION_BEAN_DD, new SessionBeanXmlDescriptorProcessor(appclient)); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.PARSE, Phase.PARSE_ANNOTATION_EJB, new EjbAnnotationProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.PARSE, Phase.PARSE_EJB_INJECTION_ANNOTATION, new EjbResourceInjectionAnnotationProcessor(appclient)); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.PARSE, Phase.PARSE_EJB_ASSEMBLY_DESC_DD, new AssemblyDescriptorProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.DEPENDENCIES, Phase.DEPENDENCIES_EJB, new EjbDependencyDeploymentUnitProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_HOME_MERGE, new HomeViewMergingProcessor(appclient)); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_REF, new EjbRefProcessor(appclient)); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_BUSINESS_VIEW_ANNOTATION, new BusinessViewAnnotationProcessor(appclient)); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_ORB_BIND, new IIOPJndiBindingProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_JNDI_BINDINGS, new EjbJndiBindingsDeploymentUnitProcessor(appclient)); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_CLIENT_METADATA, new EJBClientDescriptorMetaDataProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_DEFAULT_SECURITY_DOMAIN, EJB3SubsystemAdd.this.defaultSecurityDomainDeploymentProcessor); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EE_COMPONENT_SUSPEND, new EJBComponentSuspendDeploymentUnitProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EE_COMPONENT_SUSPEND + 1, new EjbClientContextSetupProcessor()); // TODO: real phase numbers processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.INSTALL, Phase.INSTALL_EJB_JACC_PROCESSING, new JaccEjbDeploymentProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.CLEANUP, Phase.CLEANUP_EJB, new EjbCleanUpProcessor()); if (!appclient) { // add the metadata parser deployment processor // Process @DependsOn after the @Singletons have been registered. processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.PARSE, Phase.PARSE_EJB_TIMERSERVICE_BINDING, new TimerServiceJndiBindingProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.PARSE, Phase.PARSE_EJB_APPLICATION_EXCEPTION_ANNOTATION, new ApplicationExceptionAnnotationProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.PARSE, Phase.PARSE_EJB_DD_INTERCEPTORS, new InterceptorClassDeploymentDescriptorProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.PARSE, Phase.PARSE_EJB_SECURITY_ROLE_REF_DD, new SecurityRoleRefDDProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.PARSE, Phase.PARSE_PASSIVATION_ANNOTATION, new PassivationAnnotationParsingProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_IMPLICIT_NO_INTERFACE_VIEW, new ImplicitLocalViewProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_APPLICATION_EXCEPTIONS, new ApplicationExceptionMergingProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_DD_INTERCEPTORS, new DeploymentDescriptorInterceptorBindingsProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_DD_METHOD_RESOLUTION, new DeploymentDescriptorMethodProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_TRANSACTION_MANAGEMENT, new TransactionManagementMergingProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_CONCURRENCY_MANAGEMENT_MERGE, new ConcurrencyManagementMergingProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_CONCURRENCY_MERGE, new EjbConcurrencyMergingProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_TX_ATTR_MERGE, new TransactionAttributeMergingProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_RUN_AS_MERGE, new RunAsMergingProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_RESOURCE_ADAPTER_MERGE, new ResourceAdaptorMergingProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_CLUSTERED, new ClusteredSingletonMergingProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_DELIVERY_ACTIVE_MERGE, new MdbDeliveryMergingProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_REMOVE_METHOD, new RemoveMethodMergingProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_STARTUP_MERGE, new StartupMergingProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_SECURITY_DOMAIN, new SecurityDomainMergingProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_SECURITY_MISSING_METHOD_PERMISSIONS, missingMethodPermissionsDenyAccessMergingProcessor); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_ROLES, new DeclareRolesMergingProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_METHOD_PERMISSIONS, new MethodPermissionsMergingProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_STATEFUL_TIMEOUT, new StatefulTimeoutMergingProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_SESSION_SYNCHRONIZATION, new SessionSynchronizationMergingProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_INIT_METHOD, new InitMethodMergingProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_SESSION_BEAN, new SessionBeanMergingProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_SECURITY_PRINCIPAL_ROLE_MAPPING_MERGE, new SecurityRolesMergingProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_LOCAL_HOME, new SessionBeanHomeProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_CACHE, new CacheMergingProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_SLSB_POOL_NAME_MERGE, new StatelessSessionBeanPoolMergingProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_MDB_POOL_NAME_MERGE, new MessageDrivenBeanPoolMergingProcessor()); // Add the deployment unit processor responsible for processing the user application // specific container interceptors configured in jboss-ejb3.xml processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_EJB_USER_APP_SPECIFIC_CONTAINER_INTERCEPTORS, new ContainerInterceptorBindingsDDProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.INSTALL, Phase.INSTALL_DEPENDS_ON_ANNOTATION, new EjbDependsOnMergingProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.INSTALL, Phase.INSTALL_DEPLOYMENT_REPOSITORY, new DeploymentRepositoryProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.INSTALL, Phase.INSTALL_EJB_MANAGEMENT_RESOURCES, new EjbManagementDeploymentUnitProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.INSTALL, Phase.INSTALL_CACHE_DEPENDENCIES, new CacheDependenciesProcessor()); processorTarget.addDeploymentProcessor( EJB3Extension.SUBSYSTEM_NAME, Phase.INSTALL, Phase.INSTALL_EE_MODULE_CONFIG + 1, new MdbDeliveryDependenciesProcessor()); // TODO Phase: replace by // Phase.INSTALL_MDB_DELIVERY_DEPENDENCIES } } }, OperationContext.Stage.RUNTIME); // todo maybe needs // EJB3SubsystemRootResourceDefinition.DEFAULT_MDB_INSTANCE_POOL.resolveModelAttribute(context,model).isDefined() if (model.hasDefined(DEFAULT_MDB_INSTANCE_POOL)) { EJB3SubsystemDefaultPoolWriteHandler.MDB_POOL.updatePoolService(context, model); } if (model.hasDefined(DEFAULT_SLSB_INSTANCE_POOL)) { EJB3SubsystemDefaultPoolWriteHandler.SLSB_POOL.updatePoolService(context, model); } if (model.hasDefined(DEFAULT_ENTITY_BEAN_INSTANCE_POOL)) { EJB3SubsystemDefaultPoolWriteHandler.ENTITY_BEAN_POOL.updatePoolService(context, model); } if (model.hasDefined(DEFAULT_SFSB_CACHE)) { EJB3SubsystemDefaultCacheWriteHandler.SFSB_CACHE.updateCacheService(context, model); } if (model.hasDefined(DEFAULT_SFSB_PASSIVATION_DISABLED_CACHE)) { EJB3SubsystemDefaultCacheWriteHandler.SFSB_PASSIVATION_DISABLED_CACHE.updateCacheService( context, model); } if (model.hasDefined(DEFAULT_RESOURCE_ADAPTER_NAME)) { DefaultResourceAdapterWriteHandler.INSTANCE.updateDefaultAdapterService(context, model); } if (model.hasDefined(DEFAULT_SINGLETON_BEAN_ACCESS_TIMEOUT)) { DefaultSingletonBeanAccessTimeoutWriteHandler.INSTANCE .updateOrCreateDefaultSingletonBeanAccessTimeoutService(context, model); } if (model.hasDefined(DEFAULT_STATEFUL_BEAN_ACCESS_TIMEOUT)) { DefaultStatefulBeanAccessTimeoutWriteHandler.INSTANCE .updateOrCreateDefaultStatefulBeanAccessTimeoutService(context, model); } if (model.hasDefined(DEFAULT_ENTITY_BEAN_OPTIMISTIC_LOCKING)) { EJB3SubsystemDefaultEntityBeanOptimisticLockingWriteHandler.INSTANCE.updateOptimisticLocking( context, model); } ExceptionLoggingWriteHandler.INSTANCE.updateOrCreateDefaultExceptionLoggingEnabledService( context, model); final ServiceTarget serviceTarget = context.getServiceTarget(); context .getServiceTarget() .addService(DeploymentRepository.SERVICE_NAME, new DeploymentRepository()) .install(); addRemoteInvocationServices(context, model, appclient); // add clustering service addClusteringServices(context, appclient); // add user transaction access control service final EJB3UserTransactionAccessControlService userTxAccessControlService = new EJB3UserTransactionAccessControlService(); context .getServiceTarget() .addService( EJB3UserTransactionAccessControlService.SERVICE_NAME, userTxAccessControlService) .addDependency( UserTransactionAccessControlService.SERVICE_NAME, UserTransactionAccessControlService.class, userTxAccessControlService.getUserTransactionAccessControlServiceInjector()) .install(); if (!appclient) { final EJBUtilities utilities = new EJBUtilities(); serviceTarget .addService(EJBUtilities.SERVICE_NAME, utilities) .addDependency( ConnectorServices.RA_REPOSITORY_SERVICE, ResourceAdapterRepository.class, utilities.getResourceAdapterRepositoryInjector()) .addDependency( SimpleSecurityManagerService.SERVICE_NAME, ServerSecurityManager.class, utilities.getSecurityManagerInjector()) .addDependency( TxnServices.JBOSS_TXN_TRANSACTION_MANAGER, TransactionManager.class, utilities.getTransactionManagerInjector()) .addDependency( TxnServices.JBOSS_TXN_SYNCHRONIZATION_REGISTRY, TransactionSynchronizationRegistry.class, utilities.getTransactionSynchronizationRegistryInjector()) .addDependency( TxnServices.JBOSS_TXN_USER_TRANSACTION, UserTransaction.class, utilities.getUserTransactionInjector()) .setInitialMode(ServiceController.Mode.ACTIVE) .install(); // create the POA Registry use by iiop final POARegistry poaRegistry = new POARegistry(); context .getServiceTarget() .addService(POARegistry.SERVICE_NAME, poaRegistry) .addDependency(CorbaPOAService.ROOT_SERVICE_NAME, POA.class, poaRegistry.getRootPOA()) .setInitialMode(ServiceController.Mode.PASSIVE) .install(); EnableStatisticsWriteHandler.INSTANCE.updateToRuntime(context, model); } }
protected void performBoottime( final OperationContext context, ModelNode operation, final ModelNode model, ServiceVerificationHandler verificationHandler, List<ServiceController<?>> newControllers) throws OperationFailedException { // setup ejb: namespace EjbNamingContextSetup.setupEjbNamespace(); // TODO: this is a bit of a hack InitialContext.addUrlContextFactory("ejb", new ejbURLContextFactory()); final boolean appclient = model.hasDefined(APPCLIENT) && model.get(APPCLIENT).asBoolean(); context.addStep( new AbstractDeploymentChainStep() { protected void execute(DeploymentProcessorTarget processorTarget) { // DUP's that are used even for app client deployments processorTarget.addDeploymentProcessor( Phase.PARSE, Phase.PARSE_EJB_DEPLOYMENT, new EjbJarParsingDeploymentUnitProcessor()); processorTarget.addDeploymentProcessor( Phase.PARSE, Phase.PARSE_SESSION_BEAN_CREATE_COMPONENT_DESCRIPTIONS, new SessionBeanComponentDescriptionFactory(appclient)); processorTarget.addDeploymentProcessor( Phase.PARSE, Phase.PARSE_EJB_SESSION_BEAN_DD, new SessionBeanXmlDescriptorProcessor(appclient)); processorTarget.addDeploymentProcessor( Phase.PARSE, Phase.PARSE_ANNOTATION_EJB, new EjbAnnotationProcessor()); processorTarget.addDeploymentProcessor( Phase.PARSE, Phase.PARSE_EJB_INJECTION_ANNOTATION, new EjbResourceInjectionAnnotationProcessor()); processorTarget.addDeploymentProcessor( Phase.PARSE, Phase.PARSE_ENTITY_BEAN_CREATE_COMPONENT_DESCRIPTIONS, new EntityBeanComponentDescriptionFactory(appclient)); processorTarget.addDeploymentProcessor( Phase.DEPENDENCIES, Phase.DEPENDENCIES_EJB, new EjbDependencyDeploymentUnitProcessor()); processorTarget.addDeploymentProcessor( Phase.POST_MODULE, Phase.POST_MODULE_EJB_HOME_MERGE, new HomeViewMergingProcessor(appclient)); processorTarget.addDeploymentProcessor( Phase.POST_MODULE, Phase.POST_MODULE_EJB_REF, new EjbRefProcessor()); processorTarget.addDeploymentProcessor( Phase.POST_MODULE, Phase.POST_MODULE_EJB_CLIENT_CONTEXT_SETUP, new EjbClientContextSetupProcessor()); processorTarget.addDeploymentProcessor( Phase.POST_MODULE, Phase.POST_MODULE_EJB_BUSINESS_VIEW_ANNOTATION, new BusinessViewAnnotationProcessor(appclient)); processorTarget.addDeploymentProcessor( Phase.POST_MODULE, Phase.POST_MODULE_EJB_ORB_BIND, new ORBJndiBindingProcessor()); processorTarget.addDeploymentProcessor( Phase.INSTALL, Phase.INSTALL_RESOLVE_EJB_INJECTIONS, new EjbInjectionResolutionProcessor()); processorTarget.addDeploymentProcessor( Phase.INSTALL, Phase.INSTALL_EJB_JACC_PROCESSING, new JaccEjbDeploymentProcessor()); processorTarget.addDeploymentProcessor( Phase.CLEANUP, Phase.CLEANUP_EJB, new EjbCleanUpProcessor()); if (!appclient) { // add the metadata parser deployment processor // Process @DependsOn after the @Singletons have been registered. processorTarget.addDeploymentProcessor( Phase.PARSE, Phase.PARSE_EJB_CONTEXT_BINDING, new EjbContextJndiBindingProcessor()); processorTarget.addDeploymentProcessor( Phase.PARSE, Phase.PARSE_EJB_TIMERSERVICE_BINDING, new TimerServiceJndiBindingProcessor()); processorTarget.addDeploymentProcessor( Phase.PARSE, Phase.PARSE_EJB_APPLICATION_EXCEPTION_ANNOTATION, new ApplicationExceptionAnnotationProcessor()); processorTarget.addDeploymentProcessor( Phase.PARSE, Phase.PARSE_EJB_DD_INTERCEPTORS, new InterceptorClassDeploymentDescriptorProcessor()); processorTarget.addDeploymentProcessor( Phase.PARSE, Phase.PARSE_EJB_ASSEMBLY_DESC_DD, new AssemblyDescriptorProcessor()); processorTarget.addDeploymentProcessor( Phase.PARSE, Phase.PARSE_EJB_SECURITY_ROLE_REF_DD, new SecurityRoleRefDDProcessor()); processorTarget.addDeploymentProcessor( Phase.PARSE, Phase.PARSE_EJB_REMOTE_CLIENT_CONTEXT, new EjbClientContextParsingProcessor()); processorTarget.addDeploymentProcessor( Phase.PARSE, Phase.PARSE_MDB_CREATE_COMPONENT_DESCRIPTIONS, new MessageDrivenComponentDescriptionFactory()); processorTarget.addDeploymentProcessor( Phase.POST_MODULE, Phase.POST_MODULE_EJB_IMPLICIT_NO_INTERFACE_VIEW, new ImplicitLocalViewProcessor()); processorTarget.addDeploymentProcessor( Phase.POST_MODULE, Phase.POST_MODULE_EJB_JNDI_BINDINGS, new EjbJndiBindingsDeploymentUnitProcessor()); processorTarget.addDeploymentProcessor( Phase.POST_MODULE, Phase.POST_MODULE_EJB_APPLICATION_EXCEPTIONS, new ApplicationExceptionMergingProcessor()); processorTarget.addDeploymentProcessor( Phase.POST_MODULE, Phase.POST_MODULE_EJB_DD_INTERCEPTORS, new DeploymentDescriptorInterceptorBindingsProcessor()); processorTarget.addDeploymentProcessor( Phase.POST_MODULE, Phase.POST_MODULE_EJB_DD_METHOD_RESOLUTION, new DeploymentDescriptorMethodProcessor()); processorTarget.addDeploymentProcessor( Phase.POST_MODULE, Phase.POST_MODULE_EJB_TRANSACTION_MANAGEMENT, new TransactionManagementMergingProcessor()); processorTarget.addDeploymentProcessor( Phase.POST_MODULE, Phase.POST_MODULE_EJB_CONCURRENCY_MANAGEMENT_MERGE, new ConcurrencyManagementMergingProcessor()); processorTarget.addDeploymentProcessor( Phase.POST_MODULE, Phase.POST_MODULE_EJB_CONCURRENCY_MERGE, new EjbConcurrencyMergingProcessor()); processorTarget.addDeploymentProcessor( Phase.POST_MODULE, Phase.POST_MODULE_EJB_TX_ATTR_MERGE, new TransactionAttributeMergingProcessor()); processorTarget.addDeploymentProcessor( Phase.POST_MODULE, Phase.POST_MODULE_EJB_RUN_AS_MERGE, new RunAsMergingProcessor()); processorTarget.addDeploymentProcessor( Phase.POST_MODULE, Phase.POST_MODULE_EJB_RESOURCE_ADAPTER_MERGE, new ResourceAdaptorMergingProcessor()); processorTarget.addDeploymentProcessor( Phase.POST_MODULE, Phase.POST_MODULE_EJB_REMOVE_METHOD, new RemoveMethodMergingProcessor()); processorTarget.addDeploymentProcessor( Phase.POST_MODULE, Phase.POST_MODULE_EJB_STARTUP_MERGE, new StartupMergingProcessor()); processorTarget.addDeploymentProcessor( Phase.POST_MODULE, Phase.POST_MODULE_EJB_SECURITY_DOMAIN, new SecurityDomainMergingProcessor()); processorTarget.addDeploymentProcessor( Phase.POST_MODULE, Phase.POST_MODULE_EJB_ROLES, new DeclareRolesMergingProcessor()); processorTarget.addDeploymentProcessor( Phase.POST_MODULE, Phase.POST_MODULE_METHOD_PERMISSIONS, new MethodPermissionsMergingProcessor()); processorTarget.addDeploymentProcessor( Phase.POST_MODULE, Phase.POST_MODULE_EJB_STATEFUL_TIMEOUT, new StatefulTimeoutMergingProcessor()); processorTarget.addDeploymentProcessor( Phase.POST_MODULE, Phase.POST_MODULE_EJB_SESSION_SYNCHRONIZATION, new SessionSynchronizationMergingProcessor()); processorTarget.addDeploymentProcessor( Phase.POST_MODULE, Phase.POST_MODULE_EJB_INIT_METHOD, new InitMethodMergingProcessor()); processorTarget.addDeploymentProcessor( Phase.POST_MODULE, Phase.POST_MODULE_LOCAL_HOME, new SessionBeanHomeProcessor()); processorTarget.addDeploymentProcessor( Phase.POST_MODULE, Phase.POST_MODULE_EJB_IIOP, new EjbIIOPDeploymentUnitProcessor()); processorTarget.addDeploymentProcessor( Phase.INSTALL, Phase.INSTALL_DEPENDS_ON_ANNOTATION, new EjbDependsOnMergingProcessor()); processorTarget.addDeploymentProcessor( Phase.INSTALL, Phase.INSTALL_DEPLOYMENT_REPOSITORY, new DeploymentRepositoryProcessor()); processorTarget.addDeploymentProcessor( Phase.INSTALL, Phase.INSTALL_EJB_MANAGEMENT_RESOURCES, new EjbManagementDeploymentUnitProcessor()); } } }, OperationContext.Stage.RUNTIME); if (model.hasDefined(DEFAULT_MDB_INSTANCE_POOL)) { EJB3SubsystemDefaultPoolWriteHandler.MDB_POOL.updatePoolService( context, model, newControllers); } if (model.hasDefined(DEFAULT_SLSB_INSTANCE_POOL)) { EJB3SubsystemDefaultPoolWriteHandler.SLSB_POOL.updatePoolService( context, model, newControllers); } if (model.hasDefined(DEFAULT_RESOURCE_ADAPTER_NAME)) { DefaultResourceAdapterWriteHandler.INSTANCE.updateDefaultAdapterService( context, model, newControllers); } if (model.hasDefined(DEFAULT_SINGLETON_BEAN_ACCESS_TIMEOUT)) { DefaultSingletonBeanAccessTimeoutWriteHandler.INSTANCE .updateOrCreateDefaultSingletonBeanAccessTimeoutService(context, model, newControllers); } if (model.hasDefined(DEFAULT_STATEFUL_BEAN_ACCESS_TIMEOUT)) { DefaultStatefulBeanAccessTimeoutWriteHandler.INSTANCE .updateOrCreateDefaultStatefulBeanAccessTimeoutService(context, model, newControllers); } final ServiceTarget serviceTarget = context.getServiceTarget(); newControllers.add( context .getServiceTarget() .addService(DeploymentRepository.SERVICE_NAME, new DeploymentRepository()) .install()); addRemoteInvocationServices(context, newControllers, appclient); if (!appclient) { final EJBUtilities utilities = new EJBUtilities(); newControllers.add( serviceTarget .addService(EJBUtilities.SERVICE_NAME, utilities) .addDependency( ConnectorServices.RA_REPOSISTORY_SERVICE, ResourceAdapterRepository.class, utilities.getResourceAdapterRepositoryInjector()) .addDependency( ConnectorServices.IRONJACAMAR_MDR, MetadataRepository.class, utilities.getMdrInjector()) .addDependency( SimpleSecurityManagerService.SERVICE_NAME, SimpleSecurityManager.class, utilities.getSecurityManagerInjector()) .addDependency( TxnServices.JBOSS_TXN_TRANSACTION_MANAGER, TransactionManager.class, utilities.getTransactionManagerInjector()) .addDependency( TxnServices.JBOSS_TXN_SYNCHRONIZATION_REGISTRY, TransactionSynchronizationRegistry.class, utilities.getTransactionSynchronizationRegistryInjector()) .addDependency( TxnServices.JBOSS_TXN_USER_TRANSACTION, UserTransaction.class, utilities.getUserTransactionInjector()) .addListener(verificationHandler) .setInitialMode(ServiceController.Mode.ACTIVE) .install()); // create the POA Registry use by iiop final POARegistry poaRegistry = new POARegistry(); newControllers.add( context .getServiceTarget() .addService(POARegistry.SERVICE_NAME, poaRegistry) .addDependency(CorbaPOAService.ROOT_SERVICE_NAME, POA.class, poaRegistry.getRootPOA()) .addListener(verificationHandler) .install()); } }