@Override public synchronized ManagedReferenceFactory getValue() throws IllegalStateException { final ManagedReferenceFactory value = super.getValue(); if (value == null) { return null; } // wrap the real factory in the one that controls access return new ContextListAndJndiViewManagedReferenceFactory() { @Override public String getJndiViewInstanceValue() { return UserTransaction.class.getSimpleName(); } @Override public String getInstanceClassName() { return UserTransaction.class.getName(); } @Override public ManagedReference getReference() { accessControlService.getValue().authorizeAccess(); return value.getReference(); } }; }
@Override public void uninject() { tmBinderService.getManagedObjectInjector().uninject(); } });
public boolean contains(ServiceName serviceName) { synchronized (this) { if (services != null) { for (BinderService service : services) { if (serviceName.equals(service.getServiceName())) { return true; } } } return false; } }
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(); }
/** * 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); }
target.addService(ContextNames.JAVA_CONTEXT_SERVICE_NAME, new NamingStoreService()) .setInitialMode(ServiceController.Mode.ACTIVE) .install(); final NamingService namingService = new NamingService(); target.addService(Capability.NAMING_STORE.getDefinition().getCapabilityServiceName(), namingService) .addAliases(NamingService.SERVICE_NAME) .addDependency(ContextNames.JAVA_CONTEXT_SERVICE_NAME, NamingStore.class, namingService.getNamingStore()) .setInitialMode(ServiceController.Mode.ACTIVE) .install(); target.addService(ContextNames.GLOBAL_CONTEXT_SERVICE_NAME, new NamingStoreService()) .setInitialMode(ServiceController.Mode.ACTIVE) .install(); target.addService(ContextNames.JBOSS_CONTEXT_SERVICE_NAME, new NamingStoreService()) .setInitialMode(ServiceController.Mode.ACTIVE) .install(); target.addService(ContextNames.EXPORTED_CONTEXT_SERVICE_NAME, new NamingStoreService()) .setInitialMode(ServiceController.Mode.ACTIVE) .install(); DefaultNamespaceContextSelectorService defaultNamespaceContextSelectorService = new DefaultNamespaceContextSelectorService(); target.addService(DefaultNamespaceContextSelectorService.SERVICE_NAME, defaultNamespaceContextSelectorService) .addDependency(ContextNames.GLOBAL_CONTEXT_SERVICE_NAME, NamingStore.class, defaultNamespaceContextSelectorService.getGlobalNamingStore()) .addDependency(ContextNames.JBOSS_CONTEXT_SERVICE_NAME, NamingStore.class, defaultNamespaceContextSelectorService.getJbossNamingStore()) .addDependency(ContextNames.EXPORTED_CONTEXT_SERVICE_NAME, NamingStore.class, defaultNamespaceContextSelectorService.getRemoteExposedNamingStore()) .setInitialMode(ServiceController.Mode.ACTIVE)
public void releaseAll() { synchronized (this) { if (services != null) { for (BinderService service : services) { try { service.release(); } catch (Throwable e) { NamingLogger.ROOT_LOGGER.failedToReleaseBinderService(e); } } services = null; } } }
@Override public synchronized void stop(StopContext context) { super.stop(context); externalContextsInjectedValue.getValue().removeExternalContext(context.getController().getName()); }
@Override public synchronized void start(StartContext context) throws StartException { super.start(context); externalContextsInjectedValue.getValue().addExternalContext(context.getController().getName()); }
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); }
@Override public void uninject() { instanceNameService.getManagedObjectInjector().uninject(); } })
@Override public void stop(StopContext context) { if(binderService.release()) { //we are the last user, it needs to shut down context.asynchronous(); sharedBindingController.addListener(new LifecycleListener() { @Override public void handleEvent(ServiceController<?> controller, LifecycleEvent event) { if(event == LifecycleEvent.REMOVED) { context.complete(); } } }); } }
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(); }
@Override public void uninject() { tmLegacyBinderService.getManagedObjectInjector().uninject(); } });
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(); }
@Override public void uninject() { tsrBinderService.getManagedObjectInjector().uninject(); } });
@Override public void inject(final ServerEnvironment serverEnvironment) throws InjectionException { instanceNameService.getManagedObjectInjector().inject(new ManagedReferenceFactory() { @Override public ManagedReference getReference() { return new ManagedReference() { @Override public void release() { } @Override public Object getInstance() { final String nodeName = serverEnvironment.getNodeName(); return nodeName == null ? "" : nodeName; } }; } }); }
@Override public void inject(final javax.transaction.TransactionManager value) throws InjectionException { tmBinderService.getManagedObjectInjector().inject(new ValueManagedReferenceFactory(new ImmediateValue<Object>(value))); }
@Override public void inject(final javax.transaction.TransactionManager value) throws InjectionException { tmLegacyBinderService.getManagedObjectInjector().inject(new ValueManagedReferenceFactory(new ImmediateValue<Object>(value))); }
@Override public void inject(final TransactionSynchronizationRegistry value) throws InjectionException { tsrBinderService.getManagedObjectInjector().inject(new ValueManagedReferenceFactory(new ImmediateValue<Object>(value))); }