public ZeroMQWireTarget generateTarget(LogicalBinding<ZeroMQBinding> binding, ServiceContract contract, List<LogicalOperation> operations) { validateServiceContract(contract); ZeroMQMetadata metadata = binding.getDefinition().getZeroMQMetadata(); if (binding.isCallback()) { URI targetUri = URI.create("zmq://" + contract.getInterfaceName()); return new ZeroMQWireTarget(targetUri, metadata); } URI targetUri; // If this is an undeployment, use the previously calculated target URI. This must be done since the target component may no longer // be in the domain if it has been undeployed from another zone. if (LogicalState.MARKED == binding.getState()) { targetUri = binding.getMetadata(TARGET_URI, URI.class); } else { targetUri = binding.getDefinition().getTargetUri();// parseTargetUri(binding); if (targetUri != null) { targetUri = URI.create(binding.getParent().getParent().getParent().getUri() + "/" + targetUri); } else { // create a synthetic name targetUri = URI.create("f3synthetic://" + binding.getParent().getUri() + "/" + binding.getDefinition().getName()); } binding.addMetadata(TARGET_URI, targetUri); } return generateTarget(contract, targetUri, metadata); }