Search in sources :

Example 1 with ITuple

use of org.apache.storm.tuple.ITuple in project storm by apache.

the class StormMqttIntegrationTest method buildMqttTopology.

public StormTopology buildMqttTopology() {
    TopologyBuilder builder = new TopologyBuilder();
    MqttOptions options = new MqttOptions();
    options.setTopics(Arrays.asList(TEST_TOPIC));
    options.setCleanConnection(false);
    TestSpout spout = new TestSpout(new StringMessageMapper(), options);
    MqttBolt bolt = new MqttBolt(options, new MqttTupleMapper() {

        @Override
        public MqttMessage toMessage(ITuple tuple) {
            LOG.info("Received: {}", tuple);
            return new MqttMessage(RESULT_TOPIC, RESULT_PAYLOAD.getBytes());
        }
    });
    builder.setSpout("mqtt-spout", spout);
    builder.setBolt("mqtt-bolt", bolt).shuffleGrouping("mqtt-spout");
    return builder.createTopology();
}
Also used : MqttOptions(org.apache.storm.mqtt.common.MqttOptions) TopologyBuilder(org.apache.storm.topology.TopologyBuilder) MqttBolt(org.apache.storm.mqtt.bolt.MqttBolt) ITuple(org.apache.storm.tuple.ITuple) StringMessageMapper(org.apache.storm.mqtt.mappers.StringMessageMapper)

Example 2 with ITuple

use of org.apache.storm.tuple.ITuple in project storm by apache.

the class ExampleJmsTopology method main.

@SuppressWarnings("serial")
public static void main(String[] args) throws Exception {
    // JMS Queue Provider
    JmsProvider jmsQueueProvider = new SpringJmsProvider("jms-activemq.xml", "jmsConnectionFactory", "notificationQueue");
    // JMS Topic provider
    JmsProvider jmsTopicProvider = new SpringJmsProvider("jms-activemq.xml", "jmsConnectionFactory", "notificationTopic");
    // JMS Producer
    JmsTupleProducer producer = new JsonTupleProducer();
    // JMS Queue Spout
    JmsSpout queueSpout = new JmsSpout();
    queueSpout.setJmsProvider(jmsQueueProvider);
    queueSpout.setJmsTupleProducer(producer);
    queueSpout.setJmsAcknowledgeMode(Session.CLIENT_ACKNOWLEDGE);
    // allow multiple instances
    queueSpout.setDistributed(true);
    TopologyBuilder builder = new TopologyBuilder();
    // spout with 5 parallel instances
    builder.setSpout(JMS_QUEUE_SPOUT, queueSpout, 5);
    // intermediate bolt, subscribes to jms spout, anchors on tuples, and auto-acks
    builder.setBolt(INTERMEDIATE_BOLT, new GenericBolt("INTERMEDIATE_BOLT", true, true, new Fields("json")), 3).shuffleGrouping(JMS_QUEUE_SPOUT);
    // bolt that subscribes to the intermediate bolt, and auto-acks
    // messages.
    builder.setBolt(FINAL_BOLT, new GenericBolt("FINAL_BOLT", true, true), 3).shuffleGrouping(INTERMEDIATE_BOLT);
    // bolt that subscribes to the intermediate bolt, and publishes to a JMS Topic
    JmsBolt jmsBolt = new JmsBolt();
    jmsBolt.setJmsProvider(jmsTopicProvider);
    // anonymous message producer just calls toString() on the tuple to create a jms message
    jmsBolt.setJmsMessageProducer(new JmsMessageProducer() {

        @Override
        public Message toMessage(Session session, ITuple input) throws JMSException {
            System.out.println("Sending JMS Message:" + input.toString());
            TextMessage tm = session.createTextMessage(input.toString());
            return tm;
        }
    });
    builder.setBolt(JMS_TOPIC_BOLT, jmsBolt).shuffleGrouping(INTERMEDIATE_BOLT);
    // JMS Topic spout
    JmsSpout topicSpout = new JmsSpout();
    topicSpout.setJmsProvider(jmsTopicProvider);
    topicSpout.setJmsTupleProducer(producer);
    topicSpout.setJmsAcknowledgeMode(Session.CLIENT_ACKNOWLEDGE);
    topicSpout.setDistributed(false);
    builder.setSpout(JMS_TOPIC_SPOUT, topicSpout);
    builder.setBolt(ANOTHER_BOLT, new GenericBolt("ANOTHER_BOLT", true, true), 1).shuffleGrouping(JMS_TOPIC_SPOUT);
    Config conf = new Config();
    if (args.length > 0) {
        conf.setNumWorkers(3);
        StormSubmitter.submitTopology(args[0], conf, builder.createTopology());
    } else {
        conf.setDebug(true);
        try (LocalCluster cluster = new LocalCluster();
            LocalTopology topo = cluster.submitTopology("storm-jms-example", conf, builder.createTopology())) {
            Utils.sleep(60000);
        }
    }
}
Also used : JmsSpout(org.apache.storm.jms.spout.JmsSpout) JmsMessageProducer(org.apache.storm.jms.JmsMessageProducer) LocalCluster(org.apache.storm.LocalCluster) JmsBolt(org.apache.storm.jms.bolt.JmsBolt) TextMessage(javax.jms.TextMessage) Message(javax.jms.Message) TopologyBuilder(org.apache.storm.topology.TopologyBuilder) Config(org.apache.storm.Config) JMSException(javax.jms.JMSException) LocalTopology(org.apache.storm.LocalCluster.LocalTopology) Fields(org.apache.storm.tuple.Fields) ITuple(org.apache.storm.tuple.ITuple) JmsProvider(org.apache.storm.jms.JmsProvider) JmsTupleProducer(org.apache.storm.jms.JmsTupleProducer) TextMessage(javax.jms.TextMessage) Session(javax.jms.Session)

Example 3 with ITuple

use of org.apache.storm.tuple.ITuple in project storm by apache.

the class SolrFieldsMapper method toSolrRequest.

@Override
public SolrRequest toSolrRequest(List<? extends ITuple> tuples) throws SolrMapperException {
    List<SolrInputDocument> docs = new LinkedList<>();
    for (ITuple tuple : tuples) {
        docs.add(buildDocument(tuple));
    }
    UpdateRequest request = new UpdateRequest();
    request.add(docs);
    log.debug("Created SolrRequest with content: {}", docs);
    return request;
}
Also used : SolrInputDocument(org.apache.solr.common.SolrInputDocument) UpdateRequest(org.apache.solr.client.solrj.request.UpdateRequest) ITuple(org.apache.storm.tuple.ITuple) LinkedList(java.util.LinkedList)

Example 4 with ITuple

use of org.apache.storm.tuple.ITuple in project storm by apache.

the class SolrJsonMapper method getJsonFromTuples.

// Builds a JSON list
private String getJsonFromTuples(List<? extends ITuple> tuples) throws SolrMapperException {
    final StringBuilder jsonListBuilder = new StringBuilder("[");
    for (ITuple tuple : tuples) {
        final String json = getJsonFromTuple(tuple);
        jsonListBuilder.append(json).append(",");
    }
    jsonListBuilder.setCharAt(jsonListBuilder.length() - 1, ']');
    return jsonListBuilder.toString();
}
Also used : ITuple(org.apache.storm.tuple.ITuple)

Aggregations

ITuple (org.apache.storm.tuple.ITuple)4 TopologyBuilder (org.apache.storm.topology.TopologyBuilder)2 LinkedList (java.util.LinkedList)1 JMSException (javax.jms.JMSException)1 Message (javax.jms.Message)1 Session (javax.jms.Session)1 TextMessage (javax.jms.TextMessage)1 UpdateRequest (org.apache.solr.client.solrj.request.UpdateRequest)1 SolrInputDocument (org.apache.solr.common.SolrInputDocument)1 Config (org.apache.storm.Config)1 LocalCluster (org.apache.storm.LocalCluster)1 LocalTopology (org.apache.storm.LocalCluster.LocalTopology)1 JmsMessageProducer (org.apache.storm.jms.JmsMessageProducer)1 JmsProvider (org.apache.storm.jms.JmsProvider)1 JmsTupleProducer (org.apache.storm.jms.JmsTupleProducer)1 JmsBolt (org.apache.storm.jms.bolt.JmsBolt)1 JmsSpout (org.apache.storm.jms.spout.JmsSpout)1 MqttBolt (org.apache.storm.mqtt.bolt.MqttBolt)1 MqttOptions (org.apache.storm.mqtt.common.MqttOptions)1 StringMessageMapper (org.apache.storm.mqtt.mappers.StringMessageMapper)1