in src/java/org/apache/fulcrum/yaafi/framework/container/ServiceContainerImpl.java [1063:1109]
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
ArrayList<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;
}