private LogicalCompositeComponent getComposite() { LogicalComponent<?> parent = getParent(); LogicalCompositeComponent composite = parent.getParent(); return composite != null ? composite : (LogicalCompositeComponent) parent; }
/** * Constructor. * * @param source the reference source * @param promotedComponentUri the promoted component URI. */ public AmbiguousReference(LogicalReference source, URI promotedComponentUri) { super(source.getParent().getUri(), source.getParent().getDefinition().getContributionUri(), Collections.singletonList(source)); this.referenceUri = source.getUri(); this.promotedComponentUri = promotedComponentUri; }
/** * Constructor. * * @param source the reference source * @param promotedComponentUri the promoted component URI. */ public AmbiguousReference(LogicalReference source, URI promotedComponentUri) { super(source.getParent().getUri(), source.getParent().getDefinition().getContributionUri(), Collections.singletonList(source)); this.referenceUri = source.getUri(); this.promotedComponentUri = promotedComponentUri; }
/** * Constructor. * * @param source the reference source * @param promotedComponentUri the promoted component URI. */ public AmbiguousReference(LogicalReference source, URI promotedComponentUri) { super(source.getParent().getUri(), source.getParent().getDefinition().getContributionUri(), Collections.singletonList(source)); this.referenceUri = source.getUri(); this.promotedComponentUri = promotedComponentUri; }
/** * Constructor. * * @param reference the reference * @param serviceUri the URI of the service * @param message the reported contract matching error */ public IncompatibleContracts(LogicalReference reference, URI serviceUri, String message) { super(reference.getParent().getUri(), reference.getParent().getDefinition().getContributionUri(), Collections.singletonList(reference)); this.referenceUri = reference.getUri(); this.serviceUri = serviceUri; this.message = message; }
/** * Constructor. * * @param reference the reference * @param serviceUri the URI of the service * @param message the reported contract matching error */ public IncompatibleContracts(LogicalReference reference, URI serviceUri, String message) { super(reference.getParent().getUri(), reference.getParent().getDefinition().getContributionUri(), Collections.singletonList(reference)); this.referenceUri = reference.getUri(); this.serviceUri = serviceUri; this.message = message; }
/** * Gets the explicit reference associated with this logical reference. * * @return Component reference if defined, otherwise null. */ public Reference<Component> getComponentReference() { return getParent().getDefinition().getReferences().get(getDefinition().getName()); }
public PhysicalWireSource generateSource(LogicalReference reference) throws Fabric3Exception { ServiceContract contract = reference.getServiceContract(); if (!(contract instanceof JavaServiceContract)) { // Spring reference contracts are always defined by Java interfaces throw new Fabric3Exception("Unexpected interface type for " + reference.getUri() + ": " + contract.getClass().getName()); } String interfaze = contract.getQualifiedInterfaceName(); URI uri = reference.getParent().getUri(); String referenceName = reference.getDefinition().getName(); return new SpringWireSource(referenceName, interfaze, uri); }
public PhysicalWireSource generateSource(LogicalReference reference) throws Fabric3Exception { ServiceContract contract = reference.getServiceContract(); if (!(contract instanceof JavaServiceContract)) { // Spring reference contracts are always defined by Java interfaces throw new Fabric3Exception("Unexpected interface type for " + reference.getUri() + ": " + contract.getClass().getName()); } String interfaze = contract.getQualifiedInterfaceName(); URI uri = reference.getParent().getUri(); String referenceName = reference.getDefinition().getName(); return new SpringWireSource(referenceName, interfaze, uri); }
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); }
public PolicyResult resolveRemoteCallbackPolicies(LogicalWire wire) throws PolicyResolutionException { LogicalReference reference = wire.getSource(); LogicalComponent target = reference.getParent(); ServiceContract referenceContract = reference.getServiceContract(); ServiceContract referenceCallbackContract = referenceContract.getCallbackContract(); LogicalBinding<?> referenceBinding = reference.getCallbackBindings().get(0); LogicalService callbackService = target.getService(referenceCallbackContract.getInterfaceName()); List<LogicalOperation> operations = reference.getCallbackOperations(); LogicalBinding<LocalBindingDefinition> sourceBinding = new LogicalBinding<>(LocalBindingDefinition.INSTANCE, callbackService); return resolvePolicies(operations, sourceBinding, referenceBinding, null, target); }
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 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); }