public PhysicalTargetDefinition generateTarget(LogicalService service, EffectivePolicy policy) throws GenerationException { if (!(service.getLeafService().getDefinition() instanceof SpringService)) { // programming error throw new GenerationException("Expected service type: " + service.getDefinition().getClass().getName()); } SpringService springService = (SpringService) service.getLeafService().getDefinition(); ServiceContract contract = springService.getServiceContract(); if (!(contract instanceof JavaServiceContract)) { // Spring service contracts are always defined by Java interfaces throw new GenerationException("Unexpected interface type for " + service.getUri() + ": " + contract.getClass().getName()); } String target = springService.getTarget(); String interfaceName = contract.getQualifiedInterfaceName(); URI uri = service.getUri(); return new SpringTargetDefinition(target, interfaceName, uri); }
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); wire.setTargetBinding(target.getBindings().get(0)); } else { wire.setTargetBinding(target.getLeafService().getBindings().get(0));
targetUri = service.getLeafService().getUri(); } else { targetUri = URI.create(parent.toString() + "/" + bindingTarget); LogicalService service = services.iterator().next(); targetUri = service.getLeafService().getUri(); } else { URI defragmented = UriHelper.getDefragmentedName(targetUri);
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 void bind(LogicalWire wire) throws BindingSelectionException { LogicalReference source = wire.getSource().getLeafReference(); LogicalService target = wire.getTarget().getLeafService(); QName deployable = source.getParent().getDeployable();
LogicalService service = wire.getTarget().getLeafService(); LogicalComponent source = reference.getParent(); LogicalComponent target = service.getLeafComponent();
public void bind(LogicalWire wire) throws BindingSelectionException { LogicalReference source = wire.getSource().getLeafReference(); LogicalService target = wire.getTarget().getLeafService(); QName deployable = source.getParent().getDeployable();
public <T extends BindingDefinition> PhysicalWireDefinition generateBoundServiceCallback(LogicalBinding<T> binding) throws GenerationException { checkService(binding); LogicalService service = (LogicalService) binding.getParent(); LogicalComponent<?> component = service.getLeafComponent(); ServiceContract contract = service.getLeafService().getServiceContract(); ServiceContract callbackContract = contract.getCallbackContract(); List<LogicalOperation> operations = service.getCallbackOperations(); // resolve callback policies PolicyResult policyResult = policyResolver.resolveCallbackPolicies(binding); EffectivePolicy sourcePolicy = policyResult.getSourcePolicy(); EffectivePolicy targetPolicy = policyResult.getTargetPolicy(); // generate the metadata used to attach the physical callback wire to the source component ComponentGenerator sourceGenerator = getGenerator(component); PhysicalSourceDefinition sourceDefinition = sourceGenerator.generateCallbackSource(service, sourcePolicy); sourceDefinition.setClassLoaderId(component.getDefinition().getContributionUri()); // generate the metadata used to attach the physical callback wire to the target transport BindingGenerator<T> bindingGenerator = getGenerator(binding); PhysicalTargetDefinition targetDefinition = bindingGenerator.generateTarget(binding, callbackContract, operations, targetPolicy); targetDefinition.setCallback(true); targetDefinition.setClassLoaderId(binding.getParent().getParent().getDefinition().getContributionUri()); // generate the metadata for interceptors that are attached to wire invocation chains, e.g. policy implemented by an interceptor Set<PhysicalOperationDefinition> physicalOperations = operationGenerator.generateOperations(operations, true, policyResult); return new PhysicalWireDefinition(sourceDefinition, targetDefinition, physicalOperations); }
ServiceContract contract = service.getLeafService().getServiceContract();