private Class<?> getType(LogicalProducer producer) { Operation operation = producer.getStreamOperation().getDefinition(); List<DataType> params = operation.getInputTypes(); if (params.size() != 1) { String interfaceName = producer.getServiceContract().getQualifiedInterfaceName(); throw new Fabric3Exception("A channel interface must have one parameter: operation " + operation.getName() + " on " + interfaceName); } return params.get(0).getType(); }
private Class<?> getType(LogicalProducer producer) { Operation operation = producer.getStreamOperation().getDefinition(); List<DataType> params = operation.getInputTypes(); if (params.size() != 1) { String interfaceName = producer.getServiceContract().getQualifiedInterfaceName(); throw new Fabric3Exception("A channel interface must have one parameter: operation " + operation.getName() + " on " + interfaceName); } return params.get(0).getType(); }
@SuppressWarnings({"unchecked"}) public List<PhysicalChannelConnectionDefinition> generateProducer(LogicalProducer producer, Map<LogicalChannel, ChannelDeliveryType> channels) throws GenerationException { List<PhysicalChannelConnectionDefinition> definitions = new ArrayList<PhysicalChannelConnectionDefinition>(); LogicalComponent<?> component = producer.getParent(); ComponentGenerator<?> componentGenerator = getGenerator(component); PhysicalConnectionSourceDefinition sourceDefinition = componentGenerator.generateConnectionSource(producer); URI classLoaderId = component.getDefinition().getContributionUri(); sourceDefinition.setClassLoaderId(classLoaderId); PhysicalEventStreamDefinition eventStream = generate(producer.getStreamOperation()); for (Map.Entry<LogicalChannel, ChannelDeliveryType> entry : channels.entrySet()) { LogicalChannel channel = entry.getKey(); if (!channel.isBound()) { PhysicalChannelConnectionDefinition definition = generateProducerConnection(producer, channel, sourceDefinition, classLoaderId, eventStream); definitions.add(definition); } else { PhysicalChannelConnectionDefinition producerDefinition = generateProducerConnection(producer, channel, sourceDefinition, classLoaderId, eventStream); definitions.add(producerDefinition); ChannelDeliveryType deliveryType = entry.getValue(); PhysicalChannelConnectionDefinition bindingDefinition = generateProducerBinding(producer, channel, deliveryType, classLoaderId, eventStream); definitions.add(bindingDefinition); } } return definitions; }
public PhysicalConnectionTarget generateConnectionTarget(LogicalProducer producer, LogicalBinding<JmsBinding> binding, DeliveryType deliveryType) { URI uri = binding.getDefinition().getTargetUri(); JmsBindingMetadata metadata = binding.getDefinition().getJmsMetadata().snapshot(); JmsGeneratorHelper.generateDefaultFactoryConfiguration(metadata.getConnectionFactory(), SessionType.AUTO_ACKNOWLEDGE); DataType type = isJAXB(producer.getStreamOperation().getDefinition().getInputTypes().get(0)) ? PhysicalDataTypes.JAXB : PhysicalDataTypes.JAVA_TYPE; JmsConnectionTarget target = new JmsConnectionTarget(uri, metadata, type); if (provisioner != null) { provisioner.generateConnectionTarget(target); } return target; }