/** * Returns true if the reference is targeted through the binding.sca uri attribute. * * @param reference the reference * @return true if the reference is targeted through the binding.sca uri attribute */ private boolean isScaTarget(LogicalReference reference) { boolean scaTarget = false; for (LogicalBinding<?> binding : reference.getBindings()) { BindingDefinition definition = binding.getDefinition(); if (definition instanceof SCABinding && ((SCABinding) definition).getTarget() != null) { scaTarget = true; break; } } return scaTarget; }
private void processReference(LogicalReference reference, QName policySet, boolean incremental) { for (LogicalWire wire : reference.getWires()) { wire.setState(LogicalState.NEW); } for (LogicalBinding<?> binding : reference.getBindings()) { if (incremental && binding.getPolicySets().contains(policySet)) { continue; } binding.setState(LogicalState.NEW); } }
private void processDetachReference(LogicalReference reference, QName policySet, boolean incremental) { for (LogicalWire wire : reference.getWires()) { wire.setState(LogicalState.NEW); } for (LogicalBinding<?> binding : reference.getBindings()) { if (incremental && !binding.getPolicySets().contains(policySet)) { continue; } binding.setState(LogicalState.NEW); } }
private boolean isBoundReinjection(LogicalReference logicalReference, boolean incremental) { Multiplicity multiplicity = logicalReference.getDefinition().getMultiplicity(); if (incremental && multiplicity == Multiplicity.ZERO_N || multiplicity == Multiplicity.ONE_N) { for (LogicalBinding<?> binding : logicalReference.getBindings()) { if (binding.getState() == LogicalState.NEW || binding.getState() == LogicalState.MARKED) { return true; } } } return false; }
private boolean isBoundReinjection(LogicalReference logicalReference) { Multiplicity multiplicity = logicalReference.getDefinition().getMultiplicity(); if (multiplicity == Multiplicity.ZERO_N || multiplicity == Multiplicity.ONE_N) { for (LogicalBinding<?> binding : logicalReference.getBindings()) { if (binding.getState() == LogicalState.NEW || binding.getState() == LogicalState.MARKED) { return true; } } } return false; }
private boolean isBoundReinjection(LogicalReference logicalReference) { Multiplicity multiplicity = logicalReference.getDefinition().getMultiplicity(); if (multiplicity == Multiplicity.ZERO_N || multiplicity == Multiplicity.ONE_N) { for (LogicalBinding<?> binding : logicalReference.getBindings()) { if (binding.getState() == LogicalState.NEW || binding.getState() == LogicalState.MARKED) { return true; } } } return false; }
for (LogicalBinding<?> binding : reference.getBindings()) { if (localName.equals(binding.getDefinition().getType().getLocalPart())) { bindings.add(binding);
removeMarkedBindings(reference.getBindings().iterator()); removeMarkedBindings(reference.getCallbackBindings().iterator());
removeMarkedBindings(reference.getBindings().iterator()); removeMarkedBindings(reference.getCallbackBindings().iterator());
private void generateBindings(LogicalReference reference, LogicalComponent<?> component, ConnectionCommand command) { boolean reinjection = isBoundReinjection(reference); for (LogicalBinding<?> logicalBinding : reference.getBindings()) { generateBinding(component, logicalBinding, command, reinjection, false); } if (reference.getServiceContract().getCallbackContract() != null) { boolean bindings = reference.isBound(); if (bindings) { List<LogicalBinding<?>> callbackBindings = reference.getCallbackBindings(); if (callbackBindings.isEmpty()) { // generate callback bindings as some transports do not require an explicit callback binding configuration on the reference generateCallbackBindings(reference); } if (callbackBindings.size() != 1) { // if the reference is explicitly bound, it must have one callback binding String uri = reference.getUri().toString(); throw new UnsupportedOperationException("The runtime requires exactly one callback binding to be specified on reference: " + uri); } LogicalBinding<?> callbackBinding = callbackBindings.get(0); generateBinding(component, callbackBinding, command, reinjection, true); } } }
private void generateBindings(LogicalReference reference, LogicalComponent<?> component, ConnectionCommand command) { boolean reinjection = isBoundReinjection(reference); for (LogicalBinding<?> logicalBinding : reference.getBindings()) { generateBinding(component, logicalBinding, command, reinjection, false); } if (reference.getServiceContract().getCallbackContract() != null) { boolean bindings = reference.isBound(); if (bindings) { List<LogicalBinding<?>> callbackBindings = reference.getCallbackBindings(); if (callbackBindings.isEmpty()) { // generate callback bindings as some transports do not require an explicit callback binding configuration on the reference generateCallbackBindings(reference); } if (callbackBindings.size() != 1) { // if the reference is explicitly bound, it must have one callback binding String uri = reference.getUri().toString(); throw new UnsupportedOperationException("The runtime requires exactly one callback binding to be specified on reference: " + uri); } LogicalBinding<?> callbackBinding = callbackBindings.get(0); generateBinding(component, callbackBinding, command, reinjection, true); } } }
if (reference.getBindings().isEmpty()) { List<LogicalBinding<?>> newBindings = new ArrayList<LogicalBinding<?>>(); } else { bindings = new ArrayList<LogicalBinding<?>>(); bindings.addAll(reference.getBindings());
@SuppressWarnings("unchecked") private void generateCallbackBindings(LogicalReference reference) { for (LogicalBinding<?> logicalBinding : reference.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.generateReferenceCallback(logicalBinding); definition.setParent(reference.getDefinition()); LogicalBinding<?> logicalCallback = new LogicalBinding(definition, reference); reference.addCallbackBinding(logicalCallback); } }
@SuppressWarnings("unchecked") private void generateCallbackBindings(LogicalReference reference) { for (LogicalBinding<?> logicalBinding : reference.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.generateReferenceCallback(logicalBinding); definition.setParent(reference.getDefinition()); LogicalBinding<?> logicalCallback = new LogicalBinding(definition, reference); reference.addCallbackBinding(logicalCallback); } }
private void generateBindings(LogicalReference reference, LogicalComponent<?> component, boolean incremental, ConnectionCommand command) throws GenerationException { boolean reinjection = isBoundReinjection(reference, incremental); for (LogicalBinding<?> logicalBinding : reference.getBindings()) { if (logicalBinding.getDefinition() instanceof SCABinding) { // skip SCA binding continue; } generateBinding(component, logicalBinding, command, incremental, reinjection, false); } if (reference.getServiceContract().getCallbackContract() != null) { boolean bindings = reference.isConcreteBound(); if (bindings) { List<LogicalBinding<?>> callbackBindings = reference.getCallbackBindings(); if (callbackBindings.isEmpty()) { // generate callback bindings as some transports do not require an explicit callback binding configuration on the reference generateCallbackBindings(reference); } if (callbackBindings.size() != 1) { // if the reference is explicitly bound, it must have one callback binding String uri = reference.getUri().toString(); throw new UnsupportedOperationException("The runtime requires exactly one callback binding to be specified on reference: " + uri); } LogicalBinding<?> callbackBinding = callbackBindings.get(0); generateBinding(component, callbackBinding, command, incremental, reinjection, true); } } }
reference.getBindings().stream().filter(binding -> NEW == binding.getState()).forEach(binding -> binding.setState(PROVISIONED)); reference.getCallbackBindings().stream().filter(binding -> NEW == binding.getState()).forEach(binding -> binding.setState(PROVISIONED));
reference.getBindings().stream().filter(binding -> NEW == binding.getState()).forEach(binding -> binding.setState(PROVISIONED)); reference.getCallbackBindings().stream().filter(binding -> NEW == binding.getState()).forEach(binding -> binding.setState(PROVISIONED));
if (result.isMatch()) { source.getBindings().clear(); target.getBindings().clear(); provider.bind(wire); if (source.getLeafReference().getBindings().isEmpty()) { QName type = result.getType(); throw new BindingSelectionException("Binding provider error. Provider did not set a binding for the reference: " + type); throw new BindingSelectionException("Binding provider error. Provider did not set a binding for the service: " + type); wire.setSourceBinding(source.getBindings().get(0)); if (!target.getBindings().isEmpty()) { wire.setTargetBinding(target.getBindings().get(0));
@SuppressWarnings("unchecked") private void generateCallbackBindings(LogicalReference reference) throws GenerationException { for (LogicalBinding<?> logicalBinding : reference.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(reference.getDefinition()); LogicalBinding<?> logicalCallback = new LogicalBinding(definition, reference); reference.addCallbackBinding(logicalCallback); } }
for (LogicalBinding<?> binding : reference.getBindings()) { if (isGenerate(binding.getState(), type)) { for (String capability : binding.getDefinition().getRequiredCapabilities()) {