/** * Sets the component state. * * @param state the instance state */ @Override public void setState(LogicalState state) { super.setState(state); for (LogicalComponent<?> component : getComponents()) { component.setState(state); } }
private boolean isLocal(LogicalWire wire) { // at this point an SCA binding can only exist for local wires since SCA bindings for remote wires will have been replaced // with concrete bindings return (wire.getSourceBinding() == null || wire.getSourceBinding().getDefinition() instanceof SCABinding) && (wire.getTargetBinding() == null || wire.getTargetBinding().getDefinition() instanceof SCABinding); }
private URI getContributionUri(LogicalBinding<WsBindingDefinition> binding) { LogicalComponent<?> current = binding.getParent().getParent(); while (current.getParent().getParent() != null) { // component deployed directly to the domain current = current.getParent(); } return current.getDefinition().getContributionUri(); }
public PolicyResult resolveLocalCallbackPolicies(LogicalWire wire) throws PolicyResolutionException { LogicalReference reference = wire.getSource(); LogicalService service = wire.getTarget(); LogicalComponent<?> targetComponent = reference.getParent(); ServiceContract referenceCallbackContract = reference.getServiceContract().getCallbackContract(); LogicalService callbackService = targetComponent.getService(referenceCallbackContract.getInterfaceName()); LogicalBinding<LocalBindingDefinition> sourceBinding = new LogicalBinding<>(LocalBindingDefinition.INSTANCE, callbackService); LogicalBinding<LocalBindingDefinition> targetBinding = new LogicalBinding<>(LocalBindingDefinition.INSTANCE, reference); LogicalComponent sourceComponent = service.getLeafComponent(); return resolvePolicies(service.getCallbackOperations(), sourceBinding, targetBinding, sourceComponent, targetComponent); }
private void addTarget(LogicalProducer logicalProducer, URI uri, LogicalComponent<?> logicalComponent) { if (uri.isAbsolute()) { LogicalComponent<?> domain = logicalComponent.getParent(); while (domain.getParent() != null) { domain = domain.getParent(); } logicalProducer.addTarget(URI.create(domain.getUri().toString() + "/" + uri.getAuthority())); } else { logicalProducer.addTarget(URI.create(logicalComponent.getParent().getUri().toString() + "/" + uri.toString())); } }
private void addSource(LogicalConsumer logicalConsumer, URI uri, LogicalComponent<?> logicalComponent) { if (uri.isAbsolute()) { LogicalComponent<?> domain = logicalComponent.getParent(); while (domain.getParent() != null) { domain = domain.getParent(); } logicalConsumer.addSource(URI.create(domain.getUri().toString() + "/" + uri.getAuthority())); } else { logicalConsumer.addSource(URI.create(logicalComponent.getParent().getUri().toString() + "/" + uri.toString())); } }
public PolicyResult resolveLocalPolicies(LogicalWire wire) throws PolicyResolutionException { LogicalReference reference = wire.getSource(); // use the leaf service to optimize data paths - e.g. a promoted service may use a different service contract and databinding than the leaf LogicalService service = wire.getTarget().getLeafService(); LogicalComponent source = reference.getParent(); LogicalComponent target = service.getLeafComponent(); LogicalBinding<LocalBindingDefinition> sourceBinding = new LogicalBinding<>(LocalBindingDefinition.INSTANCE, reference); LogicalBinding<LocalBindingDefinition> targetBinding = new LogicalBinding<>(LocalBindingDefinition.INSTANCE, service); return resolvePolicies(reference.getOperations(), sourceBinding, targetBinding, source, target); }
public PolicyResult resolveRemotePolicies(LogicalWire wire) throws PolicyResolutionException { LogicalReference reference = wire.getSource(); LogicalService service = wire.getTarget(); LogicalComponent source = reference.getParent(); LogicalComponent target = service.getLeafComponent(); LogicalBinding<?> serviceBinding = wire.getTargetBinding(); List<LogicalOperation> sourceOperations = reference.getOperations(); return resolvePolicies(sourceOperations, serviceBinding, serviceBinding, source, target); }
private boolean isWireReinjection(LogicalReference logicalReference, boolean incremental) { Multiplicity multiplicity = logicalReference.getDefinition().getMultiplicity(); if (incremental && multiplicity == Multiplicity.ZERO_N || multiplicity == Multiplicity.ONE_N) { for (LogicalWire wire : logicalReference.getWires()) { LogicalComponent<?> targetComponent = wire.getTarget().getLeafComponent(); // check the source and target sides since a target may have been added or removed if (wire.getState() == LogicalState.NEW || wire.getState() == LogicalState.MARKED || targetComponent.getState() == LogicalState.NEW || targetComponent.getState() == LogicalState.MARKED) { return true; } } } return false; }
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); } }
@SuppressWarnings({"unchecked"}) private void instantiateResources(LogicalCompositeComponent component, Composite composite) { for (Resource definition : composite.getResources()) { LogicalResource<?> resource = new LogicalResource(definition, component); component.addResource(resource); } }
/** * Returns the wires for the reference. * * @return the wires for the reference */ public List<LogicalWire> getWires() { return getComposite().getWires(this); }
public Object getParentNode(Object contextNode) { if (contextNode instanceof LogicalScaArtifact) { return ((LogicalScaArtifact) contextNode).getParent(); } return null; }
/** * Sets the effective service contract for this bindable. * * @param serviceContract the contract */ public void setServiceContract(ServiceContract serviceContract) { this.serviceContract = serviceContract; createOperations(serviceContract); }
private void addTarget(LogicalProducer logicalProducer, URI uri, LogicalComponent<?> logicalComponent) { if (uri.isAbsolute()) { LogicalComponent<?> domain = logicalComponent.getParent(); while (domain.getParent() != null) { domain = domain.getParent(); } logicalProducer.addTarget(URI.create(domain.getUri().toString() + "/" + uri.getAuthority())); } else { logicalProducer.addTarget(URI.create(logicalComponent.getParent().getUri().toString() + "/" + uri.toString())); } }
private void addSource(LogicalConsumer logicalConsumer, URI uri, LogicalComponent<?> logicalComponent) { if (uri.isAbsolute()) { LogicalComponent<?> domain = logicalComponent.getParent(); while (domain.getParent() != null) { domain = domain.getParent(); } logicalConsumer.addSource(URI.create(domain.getUri().toString() + "/" + uri.getAuthority())); } else { logicalConsumer.addSource(URI.create(logicalComponent.getParent().getUri().toString() + "/" + uri.toString())); } }
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); } }
@SuppressWarnings({"unchecked"}) private void instantiateResources(LogicalCompositeComponent component, Composite composite) { for (Resource definition : composite.getResources()) { LogicalResource<?> resource = new LogicalResource(definition, component); component.addResource(resource); } }