/** * Adds a service to this component. * * @param service the service to add */ public void add(Service<Component> service) { service.setParent(this); services.put(service.getName(), service); }
/** * Adds a service provided by the implementation. * * @param service the service to add */ public void add(Service<ComponentType> service) { service.setParent(this); services.put(service.getName(), service); }
private <S extends LogicalComponent<?>> URI generateCallbackUri(S source, ServiceContract contract, String referenceName) { LogicalService candidate = null; for (LogicalService entry : source.getServices()) { MatchResult result = matcher.isAssignableFrom(contract, entry.getServiceContract(), false); if (result.isAssignable()) { candidate = entry; break; } } if (candidate == null) { String name = contract.getInterfaceName(); URI uri = source.getUri(); throw new Fabric3Exception("Callback service not found: " + name + " on component: " + uri + " originating from reference :" + referenceName); } return URI.create(source.getUri().toString() + "#" + candidate.getDefinition().getName()); }
private <S extends LogicalComponent<?>> URI generateCallbackUri(S source, ServiceContract contract, String referenceName) { LogicalService candidate = null; for (LogicalService entry : source.getServices()) { MatchResult result = matcher.isAssignableFrom(contract, entry.getServiceContract(), false); if (result.isAssignable()) { candidate = entry; break; } } if (candidate == null) { String name = contract.getInterfaceName(); URI uri = source.getUri(); throw new Fabric3Exception("Callback service not found: " + name + " on component: " + uri + " originating from reference :" + referenceName); } return URI.create(source.getUri().toString() + "#" + candidate.getDefinition().getName()); }
if (service.getServiceContract().getQualifiedInterfaceName().equals(contract.getQualifiedInterfaceName())) { try { serviceUri = new URI(component.getUri() + "#" + service.getDefinition().getName()); } catch (URISyntaxException e) { throw new Fabric3Exception(e);
private void createServices(Component<?> component, LogicalComponent<?> logicalComponent, ComponentType componentType) { for (Service<ComponentType> service : componentType.getServices().values()) { String name = service.getName(); URI serviceUri = logicalComponent.getUri().resolve('#' + name); LogicalService logicalService = new LogicalService(serviceUri, service, logicalComponent); for (Binding binding : service.getBindings()) { LogicalBinding<Binding> logicalBinding = new LogicalBinding<>(binding, logicalService); logicalService.addBinding(logicalBinding); } for (Binding binding : service.getCallbackBindings()) { LogicalBinding<Binding> logicalBinding = new LogicalBinding<>(binding, logicalService); logicalService.addCallbackBinding(logicalBinding); } // service is configured in the component definition Service<Component> componentService = component.getServices().get(name); if (componentService != null) { for (Binding binding : componentService.getBindings()) { LogicalBinding<Binding> logicalBinding = new LogicalBinding<>(binding, logicalService); logicalService.addBinding(logicalBinding); } for (Binding binding : componentService.getCallbackBindings()) { LogicalBinding<Binding> logicalBinding = new LogicalBinding<>(binding, logicalService); logicalService.addCallbackBinding(logicalBinding); } } logicalComponent.addService(logicalService); } }
private void createServices(Component<?> component, LogicalComponent<?> logicalComponent, ComponentType componentType) { for (Service<ComponentType> service : componentType.getServices().values()) { String name = service.getName(); URI serviceUri = logicalComponent.getUri().resolve('#' + name); LogicalService logicalService = new LogicalService(serviceUri, service, logicalComponent); for (Binding binding : service.getBindings()) { LogicalBinding<Binding> logicalBinding = new LogicalBinding<>(binding, logicalService); logicalService.addBinding(logicalBinding); } for (Binding binding : service.getCallbackBindings()) { LogicalBinding<Binding> logicalBinding = new LogicalBinding<>(binding, logicalService); logicalService.addCallbackBinding(logicalBinding); } // service is configured in the component definition Service<Component> componentService = component.getServices().get(name); if (componentService != null) { for (Binding binding : componentService.getBindings()) { LogicalBinding<Binding> logicalBinding = new LogicalBinding<>(binding, logicalService); logicalService.addBinding(logicalBinding); } for (Binding binding : componentService.getCallbackBindings()) { LogicalBinding<Binding> logicalBinding = new LogicalBinding<>(binding, logicalService); logicalService.addCallbackBinding(logicalBinding); } } logicalComponent.addService(logicalService); } }