private void bindBeanManager(ServiceTarget serviceTarget, ServiceName beanManagerServiceName, ServiceName contextServiceName, final Collection<ServiceName> dependencies, final ServiceRegistry serviceRegistry) { final ServiceName beanManagerBindingServiceName = contextServiceName.append("BeanManager"); dependencies.add(beanManagerBindingServiceName); BinderService beanManagerBindingService = new BinderService("BeanManager"); final BeanManagerManagedReferenceFactory referenceFactory = new BeanManagerManagedReferenceFactory(); beanManagerBindingService.getManagedObjectInjector().inject(referenceFactory); serviceTarget.addService(beanManagerBindingServiceName, beanManagerBindingService) .addDependency(contextServiceName, ServiceBasedNamingStore.class, beanManagerBindingService.getNamingStoreInjector()) .addDependency(beanManagerServiceName, BeanManager.class, referenceFactory.beanManager) .install(); }
private void bindServices(DeploymentUnit deploymentUnit, ServiceTarget serviceTarget, ServiceName contextServiceName) { final BinderService instanceNameService = new BinderService("InstanceName"); serviceTarget.addService(instanceNameServiceName, instanceNameService) .addDependency(contextServiceName, ServiceBasedNamingStore.class, instanceNameService.getNamingStoreInjector())
private void bindServices(DeploymentUnit deploymentUnit, ServiceTarget serviceTarget, ServiceName contextServiceName) { BinderService inAppClientContainerService = new BinderService("InAppClientContainer"); final ServiceName inAppClientServiceName = contextServiceName.append("InAppClientContainer"); inAppClientContainerService.getManagedObjectInjector().inject(new ValueManagedReferenceFactory(Values.immediateValue(appclient))); serviceTarget.addService(inAppClientServiceName, inAppClientContainerService) .addDependency(contextServiceName, ServiceBasedNamingStore.class, inAppClientContainerService.getNamingStoreInjector()) .install(); deploymentUnit.addToAttachmentList(org.jboss.as.server.deployment.Attachments.JNDI_DEPENDENCIES, inAppClientServiceName); }
/** * * @param factory The ValidatorFactory to bind * @param serviceTarget The service target * @param contextServiceName The service name of the context to bind to */ private void bindServices(LazyValidatorFactory factory, ServiceTarget serviceTarget, EEModuleDescription description, String componentName, ServiceName contextServiceName) { BinderService validatorFactoryBindingService = new BinderService("ValidatorFactory"); validatorFactoryBindingService.getManagedObjectInjector().inject(new ValueManagedReferenceFactory(new ImmediateValue<Object>(factory))); serviceTarget.addService(contextServiceName.append("ValidatorFactory"), validatorFactoryBindingService) .addDependency(contextServiceName, ServiceBasedNamingStore.class, validatorFactoryBindingService.getNamingStoreInjector()) .install(); BinderService validatorBindingService = new BinderService("Validator"); validatorBindingService.getManagedObjectInjector().inject(new ValidatorJndiInjectable(factory)); serviceTarget.addService(contextServiceName.append("Validator"), validatorBindingService) .addDependency(contextServiceName, ServiceBasedNamingStore.class, validatorBindingService.getNamingStoreInjector()) .install(); } @Override
/** * Binds the java:comp/UserTransaction service and the java:comp/TransactionSynchronizationRegistry * * @param deploymentUnit The deployment unit * @param serviceTarget The service target * @param contextServiceName The service name of the context to bind to */ private void bindServices(DeploymentUnit deploymentUnit, ServiceTarget serviceTarget, ServiceName contextServiceName) { final ServiceName userTransactionServiceName = contextServiceName.append("UserTransaction"); final UserTransactionBindingService userTransactionBindingService = new UserTransactionBindingService("UserTransaction"); serviceTarget.addService(userTransactionServiceName, userTransactionBindingService) .addDependency(UserTransactionAccessControlService.SERVICE_NAME, UserTransactionAccessControlService.class,userTransactionBindingService.getUserTransactionAccessControlServiceInjector()) .addDependency(UserTransactionService.INTERNAL_SERVICE_NAME, UserTransaction.class, new ManagedReferenceInjector<UserTransaction>(userTransactionBindingService.getManagedObjectInjector())) .addDependency(contextServiceName, ServiceBasedNamingStore.class, userTransactionBindingService.getNamingStoreInjector()) .install(); deploymentUnit.addToAttachmentList(org.jboss.as.server.deployment.Attachments.JNDI_DEPENDENCIES,userTransactionServiceName); final ServiceName transactionSynchronizationRegistryName = contextServiceName.append("TransactionSynchronizationRegistry"); BinderService transactionSyncBinderService = new BinderService("TransactionSynchronizationRegistry"); serviceTarget.addService(transactionSynchronizationRegistryName, transactionSyncBinderService) .addDependency(TransactionSynchronizationRegistryService.INTERNAL_SERVICE_NAME, TransactionSynchronizationRegistry.class, new ManagedReferenceInjector<TransactionSynchronizationRegistry>(transactionSyncBinderService.getManagedObjectInjector())) .addDependency(contextServiceName, ServiceBasedNamingStore.class, transactionSyncBinderService.getNamingStoreInjector()) .install(); deploymentUnit.addToAttachmentList(org.jboss.as.server.deployment.Attachments.JNDI_DEPENDENCIES,transactionSynchronizationRegistryName); }
/** * Binds java:comp/ORB * * @param serviceTarget The service target * @param contextServiceName The service name of the context to bind to */ private void bindService(final ServiceTarget serviceTarget, final ServiceName contextServiceName, final Module module) { final ServiceName orbServiceName = contextServiceName.append("ORB"); final BinderService orbService = new BinderService("ORB"); serviceTarget.addService(orbServiceName, orbService) .addDependency(CorbaORBService.SERVICE_NAME, ORB.class, new ManagedReferenceInjector<ORB>(orbService.getManagedObjectInjector())) .addDependency(contextServiceName, ServiceBasedNamingStore.class, orbService.getNamingStoreInjector()) .install(); final ServiceName handleDelegateServiceName = contextServiceName.append("HandleDelegate"); final BinderService handleDelegateBindingService = new BinderService("HandleDelegate"); handleDelegateBindingService.getManagedObjectInjector().inject(new ValueManagedReferenceFactory(new ImmediateValue(new HandleDelegateImpl(module.getClassLoader())))); serviceTarget.addService(handleDelegateServiceName, handleDelegateBindingService) .addDependency(contextServiceName, ServiceBasedNamingStore.class, handleDelegateBindingService.getNamingStoreInjector()) .install(); }
/** * <p> * Adds a {@code BinderService} to the specified target. The service binds the specified value to JNDI under the * {@code java:/jboss/contextName} context. * </p> * * @param target the {@code ServiceTarget} where the service will be added. * @param contextName the JNDI context name where the value will be bound. * @param value the value to be bound. */ public static void bindObject(final ServiceTarget target, final String contextName, final Object value) { final BinderService binderService = new BinderService(contextName); binderService.getManagedObjectInjector().inject(new ValueManagedReferenceFactory(Values.immediateValue(value))); target.addService(ContextNames.buildServiceName(ContextNames.JBOSS_CONTEXT_SERVICE_NAME, contextName), binderService) .addDependency(ContextNames.JBOSS_CONTEXT_SERVICE_NAME, ServiceBasedNamingStore.class, binderService.getNamingStoreInjector()) .install(); } }
private void setupPolicyRegistration(final StartContext context) { ServiceTarget target = context.getChildTarget(); final BinderService binderService = new BinderService(POLICY_REGISTRATION); binderService.getManagedObjectInjector().inject(new ValueManagedReferenceFactory( Values.immediateValue(new JBossPolicyRegistration()))); target.addService(ContextNames.buildServiceName(ContextNames.JAVA_CONTEXT_SERVICE_NAME, POLICY_REGISTRATION), binderService) .addDependency(ContextNames.JAVA_CONTEXT_SERVICE_NAME, ServiceBasedNamingStore.class, binderService.getNamingStoreInjector()) .install(); }
void installLookup(final OperationContext context, final String name, final ModelNode model) throws OperationFailedException { final String lookup = NamingBindingResourceDefinition.LOOKUP.resolveModelAttribute(context, model).asString(); final ServiceTarget serviceTarget = context.getServiceTarget(); final ContextNames.BindInfo bindInfo = ContextNames.bindInfoFor(name); final BinderService binderService = new BinderService(name); binderService.getManagedObjectInjector().inject(new MutableManagedReferenceFactory(new LookupManagedReferenceFactory(lookup))); serviceTarget.addService(bindInfo.getBinderServiceName(), binderService) .addDependency(bindInfo.getParentContextServiceName(), ServiceBasedNamingStore.class, binderService.getNamingStoreInjector()) .install(); }
private void bindValueToJndi(final StartContext context) { final ContextNames.BindInfo bindInfo = ContextNames.bindInfoFor(jndiName); final BinderService binderService = new BinderService(bindInfo.getBindName()); binderService.getManagedObjectInjector().inject(new ImmediateManagedReferenceFactory(getValue())); context.getChildTarget().addService(bindInfo.getBinderServiceName(),binderService) .addDependency(bindInfo.getParentContextServiceName(), ServiceBasedNamingStore.class, binderService.getNamingStoreInjector()) .install(); }
void installObjectFactory(final OperationContext context, final String name, final ModelNode model) throws OperationFailedException { final ObjectFactory objectFactoryClassInstance = createObjectFactory(context, model); final Hashtable<String, String> environment = getObjectFactoryEnvironment(context, model); ContextListAndJndiViewManagedReferenceFactory factory = new ObjectFactoryManagedReference(objectFactoryClassInstance, name, environment); final ServiceTarget serviceTarget = context.getServiceTarget(); final ContextNames.BindInfo bindInfo = ContextNames.bindInfoFor(name); final BinderService binderService = new BinderService(name, objectFactoryClassInstance); binderService.getManagedObjectInjector().inject(new MutableManagedReferenceFactory(factory)); serviceTarget.addService(bindInfo.getBinderServiceName(), binderService) .addDependency(bindInfo.getParentContextServiceName(), ServiceBasedNamingStore.class, binderService.getNamingStoreInjector()) .install(); }
void installSimpleBinding(final OperationContext context, final String name, final ModelNode model) throws OperationFailedException { Object bindValue = createSimpleBinding(context, model); ValueManagedReferenceFactory referenceFactory = new ValueManagedReferenceFactory(new ImmediateValue<Object>(bindValue)); final BinderService binderService = new BinderService(name, bindValue); binderService.getManagedObjectInjector().inject(new MutableManagedReferenceFactory(referenceFactory)); final ContextNames.BindInfo bindInfo = ContextNames.bindInfoFor(name); final ServiceTarget serviceTarget = context.getServiceTarget(); ServiceBuilder<ManagedReferenceFactory> builder = serviceTarget.addService(bindInfo.getBinderServiceName(), binderService) .addDependency(bindInfo.getParentContextServiceName(), ServiceBasedNamingStore.class, binderService.getNamingStoreInjector()); builder.install(); }
@SuppressWarnings("deprecation") @Override public ServiceBuilder<?> build(ServiceTarget target) { if (!this.enabled) { // If naming is not enabled, just install a dummy service that never starts return target.addService(this.getServiceName()).setInitialMode(ServiceController.Mode.NEVER); } String name = this.binding.getBindName(); BinderService binder = new BinderService(name); // Until ServiceBasedNamingStore works with new MSC API, we need to use deprecated ServiceBuilder methods ServiceBuilder<ManagedReferenceFactory> builder = target.addService(this.getServiceName(), binder) .addAliases(ContextNames.JAVA_CONTEXT_SERVICE_NAME.append(name)) .addDependency(this.targetServiceName, Object.class, new ManagedReferenceInjector<>(binder.getManagedObjectInjector())) .addDependency(this.binding.getParentContextServiceName(), ServiceBasedNamingStore.class, binder.getNamingStoreInjector()) ; for (ContextNames.BindInfo alias : this.aliases) { builder.addAliases(alias.getBinderServiceName(), ContextNames.JAVA_CONTEXT_SERVICE_NAME.append(alias.getBindName())); } return builder.setInitialMode(ServiceController.Mode.PASSIVE); } }
/** * Add a ContextService for this module. * * @param phaseContext the deployment unit context * @throws DeploymentUnitProcessingException */ public void deploy(DeploymentPhaseContext phaseContext) throws DeploymentUnitProcessingException { final DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit(); if (deploymentUnit.getParent() != null) { return; } EEModuleDescription moduleDescription = deploymentUnit.getAttachment(org.jboss.as.ee.component.Attachments.EE_MODULE_DESCRIPTION); final ServiceTarget serviceTarget = phaseContext.getServiceTarget(); final ServiceName applicationContextServiceName = ContextNames.contextServiceNameOfApplication(moduleDescription.getApplicationName()); final NamingStoreService contextService = new NamingStoreService(true); serviceTarget.addService(applicationContextServiceName, contextService).install(); final ServiceName appNameServiceName = applicationContextServiceName.append("AppName"); final BinderService applicationNameBinder = new BinderService("AppName"); applicationNameBinder.getManagedObjectInjector().inject(new ValueManagedReferenceFactory(Values.immediateValue(moduleDescription.getApplicationName()))); serviceTarget.addService(appNameServiceName, applicationNameBinder) .addDependency(applicationContextServiceName, ServiceBasedNamingStore.class, applicationNameBinder.getNamingStoreInjector()) .install(); deploymentUnit.addToAttachmentList(org.jboss.as.server.deployment.Attachments.JNDI_DEPENDENCIES, appNameServiceName); deploymentUnit.putAttachment(Attachments.APPLICATION_CONTEXT_CONFIG, applicationContextServiceName); }
private void installJNDIAliases(final ContextNames.BindInfo bindInfo, final ServiceTarget serviceTarget) { for (String alias : getJndiAliases()) { final ContextNames.BindInfo aliasBindInfo = ContextNames.bindInfoFor(alias); final BinderService aliasBinderService = new BinderService(alias); aliasBinderService.getManagedObjectInjector().inject(new AliasManagedReferenceFactory(bindInfo.getAbsoluteJndiName())); final ServiceBuilder sb = serviceTarget.addService(aliasBindInfo.getBinderServiceName(), aliasBinderService); sb.addDependency(bindInfo.getParentContextServiceName(), ServiceBasedNamingStore.class, aliasBinderService.getNamingStoreInjector()); sb.requires(bindInfo.getBinderServiceName()); sb.addListener(new LifecycleListener() { @Override public void handleEvent(ServiceController<?> controller, LifecycleEvent event) { switch (event) { case UP: { DEPLOYMENT_CONNECTOR_LOGGER.bindingAlias(bindInfo.getAbsoluteJndiName(), alias); break; } case DOWN: { DEPLOYMENT_CONNECTOR_LOGGER.unbindingAlias(bindInfo.getAbsoluteJndiName(), alias); break; } case REMOVED: { DEPLOYMENT_CONNECTOR_LOGGER.debugf("Removed messaging object [%s]", alias); break; } } } }); sb.install(); } }
final BinderService binderService = new BinderService(bindInfo.getBindName(), this); binderService.getManagedObjectInjector().inject(new MailSessionManagedReferenceFactory(mailSessionService)); final ServiceBuilder<ManagedReferenceFactory> binderBuilder = serviceTarget
final BinderService binderService = new BinderService(name.toString(), null, deploymentUnitServiceName != null); binderService.getManagedObjectInjector().inject(new ImmediateManagedReferenceFactory(object)); final ServiceBuilder<?> builder = serviceTarget.addService(bindName, binderService)
final BinderService service = new BinderService(bindInfo.getBindName(), bindingConfiguration.getSource()); jndiDepServiceBuilder.requires(bindInfo.getBinderServiceName()); ServiceBuilder<ManagedReferenceFactory> serviceBuilder = serviceTarget.addService(bindInfo.getBinderServiceName(), service);
final BinderService moduleNameBinder = new BinderService("ModuleName"); moduleNameBinder.getManagedObjectInjector().inject(new ValueManagedReferenceFactory(Values.immediateValue(moduleDescription.getModuleName()))); serviceTarget.addService(moduleNameServiceName, moduleNameBinder)
final BinderService binderService = new BinderService(bindInfo.getBindName()); binderService.getManagedObjectInjector().inject(valueManagedReferenceFactory); final ServiceBuilder<?> binderBuilder = serviceTarget