Package org.springframework.xd.dirt.integration.bus

Examples of org.springframework.xd.dirt.integration.bus.MessageBus


        "topic:x > router --expression=payload.contains('y')?'topic:y':'topic:z'");
    integrationSupport.streamDefinitionRepository().save(routerDefinition);
    integrationSupport.deployStream(routerDefinition, onDemandProperties());
    Thread.sleep(1000);

    MessageBus bus = testMessageBus != null ? testMessageBus : integrationSupport.messageBus();
    if (bus instanceof LocalMessageBus) { // no such bean for other buses
      singleNodeApplication.pluginContext().getBean("topic:x", MessageChannel.class);
    }
    assertFalse(singleNodeApplication.pluginContext().containsBean("topic:y"));
    assertFalse(singleNodeApplication.pluginContext().containsBean("topic:z"));


    DirectChannel testChannel = new DirectChannel();
    bus.bindPubSubProducer("topic:x", testChannel, null);
    testChannel.send(MessageBuilder.withPayload("y").build());
    Thread.sleep(2000);

    singleNodeApplication.pluginContext().getBean("topic:y", MessageChannel.class);
    assertFalse(singleNodeApplication.pluginContext().containsBean("topic:z"));

    testChannel.send(MessageBuilder.withPayload("z").build());
    Thread.sleep(2000);
    MessageChannel y3 = singleNodeApplication.pluginContext().getBean("topic:y", MessageChannel.class);
    MessageChannel z3 = singleNodeApplication.pluginContext().getBean("topic:z", MessageChannel.class);
    assertNotNull(y3);
    assertNotNull(z3);

    QueueChannel consumer = new QueueChannel();
    bus.bindPubSubConsumer("topic:y", consumer, null);
    bus.bindPubSubConsumer("topic:z", consumer, null);
    testChannel.send(MessageBuilder.withPayload("y").build());
    Thread.sleep(2000);
    testChannel.send(MessageBuilder.withPayload("z").build());
    Thread.sleep(2000);
    assertEquals("y", consumer.receive(2000).getPayload());
    assertEquals("z", consumer.receive(2000).getPayload());
    assertEquals(0, consumer.getQueueSize());

    verifyDynamicProperties(bus, "topic");

    bus.unbindProducer("topic:x", testChannel);
    bus.unbindConsumers("topic:x");
    bus.unbindConsumers("topic:y");
    bus.unbindConsumers("topic:z");
    bus.unbindProducers("topic:y");
    bus.unbindProducers("topic:z");
  }
View Full Code Here


  private void tapTest(StreamDefinition streamDefinition, StreamDefinition tapDefinition) {
    integrationSupport.createAndDeployStream(streamDefinition);
    integrationSupport.createAndDeployStream(tapDefinition);

    MessageBus bus = integrationSupport.messageBus();

    NamedChannelSource source = new SingleNodeNamedChannelSourceFactory(bus).createNamedChannelSource("queue:source");
    NamedChannelSink streamSink = new SingleNodeNamedChannelSinkFactory(bus).createNamedChannelSink("queue:sink");
    NamedChannelSink tapSink = new SingleNodeNamedChannelSinkFactory(bus).createNamedChannelSink("queue:tap");
View Full Code Here

    assertEquals(1, integrationSupport.streamRepository().count());

    Thread.sleep(1000);
    assertModuleRequest(routerDefinition.getName(), "router", false);

    MessageBus bus = testMessageBus != null ? testMessageBus : integrationSupport.messageBus();
    assertNotNull(bus);

    SingleNodeNamedChannelSinkFactory sinkFactory = new SingleNodeNamedChannelSinkFactory(bus);

    NamedChannelSink foosink = sinkFactory.createNamedChannelSink(QUEUE_FOO);
View Full Code Here

    String streamName = "test";

    StreamDefinition testStream = new StreamDefinition(streamName, streamDefinition);
    integrationSupport.createAndDeployStream(testStream);

    MessageBus messageBus = integrationSupport.messageBus();

    NamedChannelSource source = new SingleNodeNamedChannelSourceFactory(messageBus).createNamedChannelSource("queue:producer");
    NamedChannelSink sink = new SingleNodeNamedChannelSinkFactory(messageBus).createNamedChannelSink("queue:consumer");

    source.sendPayload("ping");
View Full Code Here

  }

  @Override
  protected void checkBusBound(MessageBus bus) {
    if (bus instanceof RedisTestMessageBus) {
      MessageBus msgBus = ((RedisTestMessageBus) bus).getCoreMessageBus();
      assertEquals(4, TestUtils.getPropertyValue(msgBus, "bindings", Collection.class).size());
    }
  }
View Full Code Here

  }

  @Override
  protected void checkBusUnbound(MessageBus bus) {
    if (bus instanceof RedisTestMessageBus) {
      MessageBus msgBus = ((RedisTestMessageBus) bus).getCoreMessageBus();
      assertEquals(0, TestUtils.getPropertyValue(msgBus, "bindings", Collection.class).size());
    }
  }
View Full Code Here

    createTemplate().boundListOps("queue.direct.0").trim(1, 0);
  }

  @Test
  public void testConsumerProperties() throws Exception {
    MessageBus bus = getMessageBus();
    Properties properties = new Properties();
    properties.put("maxAttempts", "1"); // disable retry
    bus.bindConsumer("props.0", new DirectChannel(), properties);
    @SuppressWarnings("unchecked")
    List<Binding> bindings = TestUtils.getPropertyValue(bus, "messageBus.bindings", List.class);
    assertEquals(1, bindings.size());
    AbstractEndpoint endpoint = bindings.get(0).getEndpoint();
    assertThat(endpoint, instanceOf(RedisQueueMessageDrivenEndpoint.class));
    assertSame(DirectChannel.class, TestUtils.getPropertyValue(endpoint, "outputChannel").getClass());
    bus.unbindConsumers("props.0");
    assertEquals(0, bindings.size());

    properties.put("backOffInitialInterval", "2000");
    properties.put("backOffMaxInterval", "20000");
    properties.put("backOffMultiplier", "5.0");
    properties.put("concurrency", "2");
    properties.put("maxAttempts", "23");
    properties.put("partitionIndex", 0);

    bus.bindConsumer("props.0", new DirectChannel(), properties);
    assertEquals(1, bindings.size());
    endpoint = bindings.get(0).getEndpoint();
    verifyConsumer(endpoint);

    try {
      bus.bindPubSubConsumer("dummy", null, properties);
      fail("Expected exception");
    }
    catch (IllegalArgumentException e) {
      assertThat(e.getMessage(), allOf(
          containsString("RedisMessageBus does not support consumer properties: "),
          containsString("partitionIndex"),
          containsString("concurrency"),
          containsString(" for dummy.")));
    }
    try {
      bus.bindConsumer("queue:dummy", null, properties);
      fail("Expected exception");
    }
    catch (IllegalArgumentException e) {
      assertEquals("RedisMessageBus does not support consumer property: partitionIndex for queue:dummy.",
          e.getMessage());
    }

    bus.unbindConsumers("props.0");
    assertEquals(0, bindings.size());
  }
View Full Code Here

    assertEquals(0, bindings.size());
  }

  @Test
  public void testProducerProperties() throws Exception {
    MessageBus bus = getMessageBus();
    bus.bindProducer("props.0", new DirectChannel(), null);
    @SuppressWarnings("unchecked")
    List<Binding> bindings = TestUtils.getPropertyValue(bus, "messageBus.bindings", List.class);
    assertEquals(1, bindings.size());
    AbstractEndpoint endpoint = bindings.get(0).getEndpoint();
    assertEquals(
        "queue.props.0",
        TestUtils.getPropertyValue(endpoint, "handler.delegate.queueNameExpression", Expression.class).getExpressionString());
    bus.unbindProducers("props.0");
    assertEquals(0, bindings.size());

    Properties properties = new Properties();
    properties.put("partitionKeyExpression", "'foo'");
    properties.put("partitionKeyExtractorClass", "foo");
    properties.put("partitionSelectorExpression", "0");
    properties.put("partitionSelectorClass", "foo");
    properties.put("partitionCount", "1");

    bus.bindProducer("props.0", new DirectChannel(), properties);
    assertEquals(1, bindings.size());
    endpoint = bindings.get(0).getEndpoint();
    assertEquals(
        "'queue.props.0-' + headers['partition']",
        TestUtils.getPropertyValue(endpoint, "handler.delegate.queueNameExpression", Expression.class).getExpressionString());

    try {
      bus.bindPubSubProducer("dummy", null, properties);
      fail("Expected exception");
    }
    catch (IllegalArgumentException e) {
      assertThat(e.getMessage(), allOf(
          containsString("RedisMessageBus does not support producer properties: "),
          containsString("partitionCount"),
          containsString("partitionSelectorExpression"),
          containsString("partitionKeyExtractorClass"),
          containsString("partitionKeyExpression"),
          containsString("partitionSelectorClass")));
      assertThat(e.getMessage(), containsString("for dummy."));
    }
    try {
      bus.bindProducer("queue:dummy", new DirectChannel(), properties);
      fail("Expected exception");
    }
    catch (IllegalArgumentException e) {
      assertThat(e.getMessage(), allOf(
          containsString("RedisMessageBus does not support producer properties: "),
          containsString("partitionCount"),
          containsString("partitionSelectorExpression"),
          containsString("partitionKeyExtractorClass"),
          containsString("partitionKeyExpression"),
          containsString("partitionSelectorClass")));
      assertThat(e.getMessage(), containsString("for queue:dummy."));
    }

    bus.unbindProducers("props.0");
    assertEquals(0, bindings.size());
  }
View Full Code Here

    assertEquals(0, bindings.size());
  }

  @Test
  public void testRequestReplyRequestorProperties() throws Exception {
    MessageBus bus = getMessageBus();
    Properties properties = new Properties();

    properties.put("backOffInitialInterval", "2000");
    properties.put("backOffMaxInterval", "20000");
    properties.put("backOffMultiplier", "5.0");
    properties.put("concurrency", "2");
    properties.put("maxAttempts", "23");

    bus.bindRequestor("props.0", new DirectChannel(), new DirectChannel(), properties);
    @SuppressWarnings("unchecked")
    List<Binding> bindings = TestUtils.getPropertyValue(bus, "messageBus.bindings", List.class);

    assertEquals(2, bindings.size());
    AbstractEndpoint endpoint = bindings.get(0).getEndpoint(); // producer
    assertEquals(
        "queue.props.0.requests",
        TestUtils.getPropertyValue(endpoint, "handler.delegate.queueNameExpression", Expression.class).getExpressionString());

    endpoint = bindings.get(1).getEndpoint(); // consumer
    verifyConsumer(endpoint);

    properties.put("partitionKeyExpression", "'foo'");
    properties.put("partitionKeyExtractorClass", "foo");
    properties.put("partitionSelectorExpression", "0");
    properties.put("partitionSelectorClass", "foo");
    properties.put("partitionCount", "1");
    properties.put("partitionIndex", "0");
    try {
      bus.bindRequestor("dummy", new DirectChannel(), new DirectChannel(), properties);
      fail("Expected exception");
    }
    catch (IllegalArgumentException e) {
      assertThat(e.getMessage(), allOf(
          containsString("RedisMessageBus does not support producer properties: "),
          containsString("partitionCount"),
          containsString("partitionSelectorExpression"),
          containsString("partitionKeyExtractorClass"),
          containsString("partitionKeyExpression"),
          containsString("partitionSelectorClass")));
      assertThat(e.getMessage(), allOf(containsString("partitionIndex"), containsString("for dummy.")));
    }

    bus.unbindConsumers("props.0");
    bus.unbindProducers("props.0");
    assertEquals(0, bindings.size());
  }
View Full Code Here

    assertEquals(0, bindings.size());
  }

  @Test
  public void testRequestReplyReplierProperties() throws Exception {
    MessageBus bus = getMessageBus();
    Properties properties = new Properties();

    properties.put("backOffInitialInterval", "2000");
    properties.put("backOffMaxInterval", "20000");
    properties.put("backOffMultiplier", "5.0");
    properties.put("concurrency", "2");
    properties.put("maxAttempts", "23");

    bus.bindReplier("props.0", new DirectChannel(), new DirectChannel(), properties);
    @SuppressWarnings("unchecked")
    List<Binding> bindings = TestUtils.getPropertyValue(bus, "messageBus.bindings", List.class);

    assertEquals(2, bindings.size());
    AbstractEndpoint endpoint = bindings.get(1).getEndpoint(); // producer
    assertEquals(
        "headers['replyTo']",
        TestUtils.getPropertyValue(endpoint, "handler.delegate.queueNameExpression", Expression.class).getExpressionString());

    endpoint = bindings.get(0).getEndpoint(); // consumer
    verifyConsumer(endpoint);

    properties.put("partitionKeyExpression", "'foo'");
    properties.put("partitionKeyExtractorClass", "foo");
    properties.put("partitionSelectorExpression", "0");
    properties.put("partitionSelectorClass", "foo");
    properties.put("partitionCount", "1");
    properties.put("partitionIndex", "0");
    try {
      bus.bindReplier("dummy", new DirectChannel(), new DirectChannel(), properties);
      fail("Expected exception");
    }
    catch (IllegalArgumentException e) {
      assertThat(e.getMessage(), allOf(
          containsString("RedisMessageBus does not support consumer properties: "),
          containsString("partitionCount"),
          containsString("partitionSelectorExpression"),
          containsString("partitionKeyExtractorClass"),
          containsString("partitionKeyExpression"),
          containsString("partitionSelectorClass")));
      assertThat(e.getMessage(), allOf(containsString("partitionIndex"), containsString("for dummy.")));
    }

    bus.unbindConsumers("props.0");
    bus.unbindProducers("props.0");
    assertEquals(0, bindings.size());
  }
View Full Code Here

TOP

Related Classes of org.springframework.xd.dirt.integration.bus.MessageBus

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.