in src/java/org/apache/fulcrum/yaafi/framework/container/ServiceContainerImpl.java [1166:1218]
private List<ServiceComponent> createServiceComponents(Configuration roleConfiguration, Logger logger)
throws ConfigurationException
{
Validate.notNull( roleConfiguration, "roleConfiguration" );
Validate.notNull( logger, "logger" );
ArrayList<ServiceComponent> result = new ArrayList<ServiceComponent>();
ServiceComponent serviceComponent = null;
// create an appropriate instance of role configuration parser
RoleConfigurationParser roleConfigurationParser = this.createRoleConfigurationParser();
// extract the role entries
RoleEntry[] roleEntryList = roleConfigurationParser.parse( roleConfiguration );
// get the default interceptors defined for the container
List<String> defaultInterceptorList = this.getDefaultInterceptorServiceList();
// create the service components based on the role entries
for (int i = 0; i < roleEntryList.length; i++)
{
try
{
// add the default interceptors to all role entries
RoleEntry roleEntry = roleEntryList[i];
if (this.hasDynamicProxies())
{
roleEntry.addInterceptors( defaultInterceptorList );
} else
{
roleEntry.setHasDynamicProxy( false );
}
serviceComponent = new AvalonServiceComponentImpl( roleEntry, this.getLogger(), logger );
result.add( serviceComponent );
} catch (Throwable t)
{
String serviceComponentName = (serviceComponent != null ? serviceComponent.getName() : "unknown");
String msg = "Failed to load the service " + serviceComponentName;
this.getLogger().error( msg, t );
throw new ConfigurationException( msg, t );
}
}
return result;
}