private void processService(LogicalService service, QName policySet, boolean incremental) { for (LogicalBinding<?> binding : service.getBindings()) { if (incremental && binding.getPolicySets().contains(policySet)) { continue; } binding.setState(LogicalState.NEW); } // TODO check collocated wires, i.e. references attached directly to the service so they can be reprovisioned }
private void processDetachService(LogicalService service, QName policySet, boolean incremental) { for (LogicalBinding<?> binding : service.getBindings()) { if (incremental && !binding.getPolicySets().contains(policySet)) { continue; } binding.setState(LogicalState.NEW); } // TODO check collocated wires, i.e. references attached directly to the service so they can be reprovisioned }
if (service.getBindings().isEmpty()) { service.overrideBindings(bindings); service.overrideCallbackBindings(callbackBindings); } else { bindings = new ArrayList<LogicalBinding<?>>(); bindings.addAll(service.getBindings()); callbackBindings = new ArrayList<LogicalBinding<?>>(); callbackBindings.addAll(service.getCallbackBindings());
} else { for (LogicalService service : component.getServices()) { removeMarkedBindings(service.getBindings().iterator()); removeMarkedBindings(service.getCallbackBindings().iterator());
public Optional<ConnectionCommand> generate(LogicalComponent<?> component) { if (component instanceof LogicalCompositeComponent) { return Optional.empty(); } // determine if a binding is being added or removed. If so, an AttachWireCommand or DetachWireCommand must be generated. boolean bindingChange = false; for (LogicalService service : component.getServices()) { for (LogicalBinding<?> binding : service.getBindings()) { if (binding.getState() == LogicalState.NEW || binding.getState() == LogicalState.MARKED) { bindingChange = true; break; } } } if (LogicalState.PROVISIONED == component.getState() && !bindingChange) { return Optional.empty(); } ConnectionCommand command = new ConnectionCommand(component.getUri()); generatePhysicalWires(component, command); if (command.getAttachCommands().isEmpty() && command.getDetachCommands().isEmpty()) { return Optional.empty(); } return Optional.of(command); }
public Optional<ConnectionCommand> generate(LogicalComponent<?> component) { if (component instanceof LogicalCompositeComponent) { return Optional.empty(); } // determine if a binding is being added or removed. If so, an AttachWireCommand or DetachWireCommand must be generated. boolean bindingChange = false; for (LogicalService service : component.getServices()) { for (LogicalBinding<?> binding : service.getBindings()) { if (binding.getState() == LogicalState.NEW || binding.getState() == LogicalState.MARKED) { bindingChange = true; break; } } } if (LogicalState.PROVISIONED == component.getState() && !bindingChange) { return Optional.empty(); } ConnectionCommand command = new ConnectionCommand(component.getUri()); generatePhysicalWires(component, command); if (command.getAttachCommands().isEmpty() && command.getDetachCommands().isEmpty()) { return Optional.empty(); } return Optional.of(command); }
} else { for (LogicalService service : component.getServices()) { removeMarkedBindings(service.getBindings().iterator()); removeMarkedBindings(service.getCallbackBindings().iterator());
List<LogicalBinding> bindings = new ArrayList<>(); for (LogicalService service : component.getServices()) { for (LogicalBinding<?> binding : service.getBindings()) { if (localName.equals(binding.getDefinition().getType().getLocalPart())) { bindings.add(binding);
} else { for (LogicalService service : component.getServices()) { removeMarkedBindings(service.getBindings().iterator()); removeMarkedBindings(service.getCallbackBindings().iterator());
target.getBindings().clear(); provider.bind(wire); if (source.getLeafReference().getBindings().isEmpty()) { throw new BindingSelectionException("Binding provider error. Provider did not set a binding for the reference: " + type); if (target.getLeafService().getBindings().isEmpty()) { QName type = result.getType(); throw new BindingSelectionException("Binding provider error. Provider did not set a binding for the service: " + type); if (!target.getBindings().isEmpty()) { wire.setTargetBinding(target.getBindings().get(0)); } else { wire.setTargetBinding(target.getLeafService().getBindings().get(0));
@SuppressWarnings("unchecked") private void generateCallbackBindings(LogicalService service) { for (LogicalBinding<?> logicalBinding : service.getBindings()) { CallbackBindingGenerator generator = generators.get(logicalBinding.getDefinition().getClass()); if (generator == null) { throw new Fabric3Exception("Callback generator not found for:" + logicalBinding.getDefinition().getType()); } Binding definition = generator.generateServiceCallback(logicalBinding); definition.setParent(service.getDefinition()); LogicalBinding<?> logicalCallback = new LogicalBinding(definition, service); service.addCallbackBinding(logicalCallback); } }
@SuppressWarnings("unchecked") private void generateCallbackBindings(LogicalService service) { for (LogicalBinding<?> logicalBinding : service.getBindings()) { CallbackBindingGenerator generator = generators.get(logicalBinding.getDefinition().getClass()); if (generator == null) { throw new Fabric3Exception("Callback generator not found for:" + logicalBinding.getDefinition().getType()); } Binding definition = generator.generateServiceCallback(logicalBinding); definition.setParent(service.getDefinition()); LogicalBinding<?> logicalCallback = new LogicalBinding(definition, service); service.addCallbackBinding(logicalCallback); } }
service.getBindings().stream().filter(binding -> NEW == binding.getState()).forEach(binding -> binding.setState(PROVISIONED)); service.getCallbackBindings().stream().filter(binding -> NEW == binding.getState()).forEach(binding -> binding.setState(PROVISIONED));
service.getBindings().stream().filter(binding -> NEW == binding.getState()).forEach(binding -> binding.setState(PROVISIONED)); service.getCallbackBindings().stream().filter(binding -> NEW == binding.getState()).forEach(binding -> binding.setState(PROVISIONED));
private void generateCallbackBindings(LogicalService service) throws GenerationException { for (LogicalBinding<?> logicalBinding : service.getBindings()) { if (logicalBinding.getDefinition() instanceof SCABinding) { // skip SCA binding continue; } CallbackBindingGenerator generator = generators.get(logicalBinding.getDefinition().getClass()); if (generator == null) { throw new GenerationException("Callback generator not found for:" + logicalBinding.getDefinition().getType()); } BindingDefinition definition = generator.generateReferenceCallback(logicalBinding); definition.setParent(service.getDefinition()); LogicalBinding<?> logicalCallback = new LogicalBinding(definition, service); service.addCallbackBinding(logicalCallback); } }
public ConnectionCommand generate(LogicalComponent<?> component, boolean incremental) throws GenerationException { if (component instanceof LogicalCompositeComponent) { return null; } // determine if a binding is being added or removed. If so, an AttachWireCommand or DetachWireCommand must be generated. boolean bindingChange = false; for (LogicalService service : component.getServices()) { for (LogicalBinding<?> binding : service.getBindings()) { if (binding.getState() == LogicalState.NEW || binding.getState() == LogicalState.MARKED) { bindingChange = true; break; } } } if (LogicalState.PROVISIONED == component.getState() && incremental && !bindingChange) { return null; } ConnectionCommand command = new ConnectionCommand(component.getUri()); generatePhysicalWires(component, command, incremental); if (command.getAttachCommands().isEmpty() && command.getDetachCommands().isEmpty()) { return null; } return command; }
for (LogicalBinding<?> binding : service.getBindings()) { if (isGenerate(binding.getState(), type)) { for (String capability : binding.getDefinition().getRequiredCapabilities()) {
private void generatePhysicalWires(LogicalComponent<?> component, ConnectionCommand command) { for (LogicalService service : component.getServices()) { if (service.getBindings().isEmpty()) { continue; for (LogicalBinding<?> binding : service.getBindings()) { if (binding.getState() == LogicalState.NEW || binding.getState() == LogicalState.MARKED) { PhysicalWire physicalWire = wireGenerator.generateService(binding, callbackUri);
private void generatePhysicalWires(LogicalComponent<?> component, ConnectionCommand command) { for (LogicalService service : component.getServices()) { if (service.getBindings().isEmpty()) { continue; for (LogicalBinding<?> binding : service.getBindings()) { if (binding.getState() == LogicalState.NEW || binding.getState() == LogicalState.MARKED) { PhysicalWire physicalWire = wireGenerator.generateService(binding, callbackUri);
private void generatePhysicalWires(LogicalComponent<?> component, ConnectionCommand command, boolean incremental) throws GenerationException { for (LogicalService service : component.getServices()) { if (service.getBindings().isEmpty()) { continue; for (LogicalBinding<?> binding : service.getBindings()) { if (binding.getDefinition() instanceof SCABinding) { continue;