context.getPluggableFeatureFactory().getInternalServicesList();
final String[][] servicesByName = servicesList.getServicesByName();
if (servicesByName == null) {
_logger.log(Level.SEVERE, "services.null");
throw new ServerLifecycleException();
}
// security manager is set inside SecurityLifecycle
// Instantiate the built-in runtime services
final List<ServerLifecycle> temp = instantiateRuntimeServices( context, servicesByName );
services.addAll( temp );
// Initialize the built-in runtime services
for ( final ServerLifecycle service : services) {
try {
service.onInitialization(context);
} catch (ServerLifecycleException e) {
_logger.log(Level.SEVERE, "service.notinit",
new Object[] {service, e.toString()});
throw e;
}
}
//add listeners for security dynamic reconfiguration
AdminEventListenerRegistry.addAuditModuleEventListener(
new AuditModuleEventListenerImpl());
AdminEventListenerRegistry.addAuthRealmEventListener(
new AuthRealmEventListenerImpl());
AdminEventListenerRegistry.addSecurityServiceEventListener(
new SecurityServiceEventListenerImpl());
AdminEventListenerRegistry.addUserMgmtEventListener(
new UserMgmtEventListenerImpl());
AdminEventListenerRegistry.addEventListener(
MessageSecurityConfigEvent.eventType,
new MessageSecurityConfigEventListenerImpl());
//add Listeners for extended Admin Feature Events
getServerContext().getPluggableFeatureFactory().
getAdminExtensionFeature().registerEventListeners();
// Call RI J2EEServer initialization code. Note that all resources
// specified in server.xml will be loaded by the common class loader.
try {
J2EEServer.main(context);
} catch (Exception e) {
throw new ServerLifecycleException(e);
}
// final connector class loader for the anonymous inner class
final ClassLoader connCL = connectorClassLoader;