log.info("Activating Naming Subsystem");
NamingContext.initializeNamingManager();
final NamingStore namingStore = new InMemoryNamingStore(new NamingEventCoordinator());
// Create the Naming Service
final ServiceTarget target = context.getServiceTarget();
newControllers.add(target.addService(NamingService.SERVICE_NAME, new NamingService(namingStore))
.addAliases(ContextNames.JAVA_CONTEXT_SERVICE_NAME)
.setInitialMode(ServiceController.Mode.ACTIVE)
.addListener(verificationHandler)
.install());
// Create the java:global namespace
final NamingStore globalNamingStore = new InMemoryNamingStore();
newControllers.add(target.addService(ContextNames.GLOBAL_CONTEXT_SERVICE_NAME, new NamingStoreService(globalNamingStore))
.setInitialMode(ServiceController.Mode.ACTIVE)
.addListener(verificationHandler)
.install());
// Create the java:jboss vendor namespace
final NamingStore jbossNamingStore = new InMemoryNamingStore();
newControllers.add(target.addService(ContextNames.JBOSS_CONTEXT_SERVICE_NAME, new NamingStoreService(jbossNamingStore))
.setInitialMode(ServiceController.Mode.ACTIVE)
.addListener(verificationHandler)
.install());
NamespaceContextSelector.setDefault(new NamespaceContextSelector() {
public Context getContext(String identifier) {
final NamingStore namingStore;
if(identifier.equals("global")){
namingStore = globalNamingStore;
} else if(identifier.equals("jboss")) {
namingStore = jbossNamingStore;
} else {
namingStore = null;
}
if (namingStore != null) {
try {
return (Context) namingStore.lookup(EMPTY_NAME);
} catch (NamingException e) {
throw new IllegalStateException(e);
}
} else {
return null;