public final class NamespaceConfigurator implements ComponentConfigurator {
/** {@inheritDoc} */
public void configure(final DeploymentPhaseContext context, final ComponentDescription description, final ComponentConfiguration configuration) throws DeploymentUnitProcessingException {
final ComponentNamingMode namingMode = description.getNamingMode();
final InjectedEENamespaceContextSelector selector = new InjectedEENamespaceContextSelector();
final String applicationName = configuration.getApplicationName();
final String moduleName = configuration.getModuleName();
final String compName = configuration.getComponentName();
final ServiceName appContextServiceName = ContextNames.contextServiceNameOfApplication(applicationName);
final ServiceName moduleContextServiceName = ContextNames.contextServiceNameOfModule(applicationName, moduleName);
final ServiceName compContextServiceName = ContextNames.contextServiceNameOfComponent(applicationName, moduleName, compName);
final Injector<NamingStore> appInjector = selector.getAppContextInjector();
final Injector<NamingStore> moduleInjector = selector.getModuleContextInjector();
final Injector<NamingStore> compInjector = selector.getCompContextInjector();
final Injector<NamingStore> jbossInjector = selector.getJbossContextInjector();
final Injector<NamingStore> globalInjector = selector.getGlobalContextInjector();
final Injector<NamingStore> exportedInjector = selector.getExportedContextInjector();
configuration.getStartDependencies().add(new DependencyConfigurator<ComponentStartService>() {
public void configureDependency(final ServiceBuilder<?> serviceBuilder, ComponentStartService service) {
serviceBuilder.addDependency(appContextServiceName, NamingStore.class, appInjector);
serviceBuilder.addDependency(moduleContextServiceName, NamingStore.class, moduleInjector);