return null; ComponentService def = new ComponentService(name, null); def.setServiceContract((ServiceContract<?>) type); } else if (type instanceof BindingDefinition) { if (callback) { def.addCallbackBinding((BindingDefinition) type); } else { def.addBinding((BindingDefinition) type); def.addOperation((OperationDefinition) type); } else if (type == null) {
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) { // there was an error with the service configuration, just skip it return; } if (!componentType.hasService(service.getName())) { // ensure the service exists 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); } }
if (!componentService.getBindings().isEmpty()) { List<LogicalBinding<?>> bindings = new ArrayList<LogicalBinding<?>>(); for (BindingDefinition binding : componentService.getBindings()) { LogicalBinding<BindingDefinition> logicalBinding = new LogicalBinding<BindingDefinition>(binding, logicalService); bindings.add(logicalBinding); for (BindingDefinition callbackBinding : componentService.getCallbackBindings()) { LogicalBinding<BindingDefinition> logicalBinding = new LogicalBinding<BindingDefinition>(callbackBinding, logicalService); callbackBindings.add(logicalBinding); logicalService.addIntents(componentService.getIntents());
private void createServices(ComponentDefinition<?> definition, LogicalComponent<?> component, ComponentType componentType) { for (AbstractService<?> service : componentType.getServices().values()) { String name = service.getName(); URI serviceUri = component.getUri().resolve('#' + name); LogicalService logicalService = new LogicalService(serviceUri, service, component); for (BindingDefinition binding : service.getBindings()) { LogicalBinding<BindingDefinition> logicalBinding = new LogicalBinding<BindingDefinition>(binding, logicalService); logicalService.addBinding(logicalBinding); } for (BindingDefinition binding : service.getCallbackBindings()) { LogicalBinding<BindingDefinition> logicalBinding = new LogicalBinding<BindingDefinition>(binding, logicalService); logicalService.addCallbackBinding(logicalBinding); } // service is configured in the component definition ComponentService componentService = definition.getServices().get(name); if (componentService != null) { logicalService.addIntents(componentService.getIntents()); for (BindingDefinition binding : componentService.getBindings()) { LogicalBinding<BindingDefinition> logicalBinding = new LogicalBinding<BindingDefinition>(binding, logicalService); logicalService.addBinding(logicalBinding); } for (BindingDefinition binding : componentService.getCallbackBindings()) { LogicalBinding<BindingDefinition> logicalBinding = new LogicalBinding<BindingDefinition>(binding, logicalService); logicalService.addCallbackBinding(logicalBinding); } } component.addService(logicalService); } }