public <T> T getConsumer(Class<T> interfaze, String name, String topic) { LogicalChannel logicalChannel = getChannel(name); LogicalConsumer consumer = createConsumer(interfaze, logicalChannel.getUri()); PhysicalChannel physicalChannel = channelGenerator.generate(logicalChannel, SYNTHETIC_CONTRIBUTION, CONSUMER); channelBuilderRegistry.build(physicalChannel); Map<LogicalChannel, DeliveryType> channels = Collections.singletonMap(logicalChannel, DeliveryType.DEFAULT); List<PhysicalChannelConnection> connections = connectionGenerator.generateConsumer(consumer, channels); PhysicalChannelConnection connection = connections.get(0); // safe as there is only one connection connection.setTopic(topic); connection.getSource().setTopic(topic); connection.getTarget().setTopic(topic); channelConnector.connect(connection); NonManagedConnectionTarget target = (NonManagedConnectionTarget) connection.getTarget(); return interfaze.cast(target.getProxy()); }
public <T> T getConsumer(Class<T> interfaze, String name, String topic) { LogicalChannel logicalChannel = getChannel(name); LogicalConsumer consumer = createConsumer(interfaze, logicalChannel.getUri()); PhysicalChannel physicalChannel = channelGenerator.generate(logicalChannel, SYNTHETIC_CONTRIBUTION, CONSUMER); channelBuilderRegistry.build(physicalChannel); Map<LogicalChannel, DeliveryType> channels = Collections.singletonMap(logicalChannel, DeliveryType.DEFAULT); List<PhysicalChannelConnection> connections = connectionGenerator.generateConsumer(consumer, channels); PhysicalChannelConnection connection = connections.get(0); // safe as there is only one connection connection.setTopic(topic); connection.getSource().setTopic(topic); connection.getTarget().setTopic(topic); channelConnector.connect(connection); NonManagedConnectionTarget target = (NonManagedConnectionTarget) connection.getTarget(); return interfaze.cast(target.getProxy()); }
private NonManagedConnectionSource connect(String topic, List<PhysicalChannelConnection> connections) { NonManagedConnectionSource source = null; for (PhysicalChannelConnection connection : connections) { connection.setTopic(topic); connection.getSource().setTopic(topic); connection.getTarget().setTopic(topic); channelConnector.connect(connection); if (connection.getSource() instanceof NonManagedConnectionSource) { source = (NonManagedConnectionSource) connection.getSource(); } } if (source == null) { throw new Fabric3Exception("NonManagedConnectionSource not found publishing to topic: " + topic); } return source; }
private NonManagedConnectionSource connect(String topic, List<PhysicalChannelConnection> connections) { NonManagedConnectionSource source = null; for (PhysicalChannelConnection connection : connections) { connection.setTopic(topic); connection.getSource().setTopic(topic); connection.getTarget().setTopic(topic); channelConnector.connect(connection); if (connection.getSource() instanceof NonManagedConnectionSource) { source = (NonManagedConnectionSource) connection.getSource(); } } if (source == null) { throw new Fabric3Exception("NonManagedConnectionSource not found publishing to topic: " + topic); } return source; }
public Object subscribe(Class<?> type, String name, String id, String topic, java.util.function.Consumer<?> consumer) { LogicalChannel logicalChannel = getChannel(name); LogicalConsumer logicalConsumer = createConsumer(type, logicalChannel.getUri()); PhysicalChannel physicalChannel = channelGenerator.generate(logicalChannel, SYNTHETIC_CONTRIBUTION, CONSUMER); channelBuilderRegistry.build(physicalChannel); Map<LogicalChannel, DeliveryType> channels = Collections.singletonMap(logicalChannel, DeliveryType.DEFAULT); List<PhysicalChannelConnection> connections = connectionGenerator.generateConsumer(logicalConsumer, channels); // Two connections will be created: one from the binding to the channel, the other from the channel to the component // the closeable will be set on the connection from the binding to the channel; it must be passed to the component Closeable closeable = null; for (PhysicalChannelConnection connection : connections) { connection.setTopic(topic); connection.getSource().setTopic(topic); connection.getTarget().setTopic(topic); connection.getTarget().setConsumer(consumer); ChannelConnection channelConnection = channelConnector.connect(connection); if (channelConnection.getCloseable() != null) { closeable = channelConnection.getCloseable(); } } return closeable; }
public Object subscribe(Class<?> type, String name, String id, String topic, java.util.function.Consumer<?> consumer) { LogicalChannel logicalChannel = getChannel(name); LogicalConsumer logicalConsumer = createConsumer(type, logicalChannel.getUri()); PhysicalChannel physicalChannel = channelGenerator.generate(logicalChannel, SYNTHETIC_CONTRIBUTION, CONSUMER); channelBuilderRegistry.build(physicalChannel); Map<LogicalChannel, DeliveryType> channels = Collections.singletonMap(logicalChannel, DeliveryType.DEFAULT); List<PhysicalChannelConnection> connections = connectionGenerator.generateConsumer(logicalConsumer, channels); // Two connections will be created: one from the binding to the channel, the other from the channel to the component // the closeable will be set on the connection from the binding to the channel; it must be passed to the component Closeable closeable = null; for (PhysicalChannelConnection connection : connections) { connection.setTopic(topic); connection.getSource().setTopic(topic); connection.getTarget().setTopic(topic); connection.getTarget().setConsumer(consumer); ChannelConnection channelConnection = channelConnector.connect(connection); if (channelConnection.getCloseable() != null) { closeable = channelConnection.getCloseable(); } } return closeable; }