in src/java/org/apache/fulcrum/yaafi/framework/factory/ServiceContainerFactory.java [66:134]
public static ServiceContainer create(
ServiceContainerConfiguration serviceManagerConfig, Context context )
throws Exception
{
Validate.notNull(serviceManagerConfig,"serviceManagerConfig");
Validate.notNull(context,"context");
String clazzName;
Class<?> clazz = null;
Configuration configuration = null;
ServiceContainer result = null;
// Enforce a logger from the caller
try
{
// bootstrap the logging
ServiceContainerFactory.logger = serviceManagerConfig.getLogger();
// bootstrap the configuration settings
configuration = serviceManagerConfig.createFinalConfiguration();
// bootstrap the service container
clazzName = getServiceContainerClazzName(configuration);
ServiceContainerFactory.logger.debug(
"Loading the service container class " + clazzName
);
clazz = ServiceContainerFactory.class.getClassLoader().loadClass(
clazzName
);
ServiceContainerFactory.logger.debug(
"Instantiating the service container class " + clazzName
);
result = (ServiceContainer) clazz.getDeclaredConstructor().newInstance();
}
catch (Exception e)
{
String msg = "Creating the ServiceContainer failed";
ServiceContainerFactory.logger.error( msg, e );
throw e;
}
Logger serviceContainerLogger = serviceManagerConfig.getLogger();
serviceContainerLogger.debug(
"Using the following configuration : "
+ ConfigurationUtil.toString( configuration )
);
ContainerUtil.enableLogging( result, serviceManagerConfig.getLogger() );
ContainerUtil.contextualize( result, context );
if(serviceManagerConfig.getParentServiceManager() != null)
{
ContainerUtil.service(result, serviceManagerConfig.getParentServiceManager());
}
ContainerUtil.configure( result, configuration );
ContainerUtil.initialize( result );
return result;
}