private void parseService(ComponentDefinition<Implementation<?>> componentDefinition,
AbstractComponentType<?, ?, ?, ?> componentType,
XMLStreamReader reader,
IntrospectionContext context) throws XMLStreamException, UnrecognizedElementException {
ComponentService service;
service = registry.load(reader, ComponentService.class, context);
if (service == null) {
return;
}
if (!componentType.hasService(service.getName())) {
ComponentServiceNotFound failure = new ComponentServiceNotFound(service.getName(), componentDefinition, reader);
context.addError(failure);
return;
}
if (componentDefinition.getServices().containsKey(service.getName())) {
String id = service.getName();
DuplicateComponentService failure = new DuplicateComponentService(id, componentDefinition.getName(), reader);
context.addError(failure);
} else {
componentDefinition.add(service);
}
}