Exemplo n.º 1
0
 /*
  * (non-Javadoc)
  * @see org.apache.camel.Processor#process(org.apache.camel.Exchange)
  */
 @Override
 @SuppressWarnings("unchecked")
 public void process(final Exchange exchange) throws Exception {
   String topicName;
   if (exchange.getIn().getHeaders().containsKey(KafkaComponent.TOPIC_NAME)) {
     topicName = exchange.getIn().getHeader(KafkaComponent.TOPIC_NAME, String.class);
   } else {
     topicName = endpoint.getTopicName();
   }
   final List<Object> evts = exchange.getIn().getBody(List.class);
   if (evts != null) {
     final List<ProducerData<String, Message>> datas =
         new ArrayList<ProducerData<String, Message>>();
     for (final Object obj : evts) {
       final ProducerData<String, Message> data =
           new ProducerData<String, Message>(
               topicName, new Message(BinaryHelper.getInstance().getBytes(obj)));
       datas.add(data);
     }
     producer.send(datas);
     if (LOG.isInfoEnabled()) {
       LOG.info("Kafka Producer multiple send : " + evts);
     }
   } else {
     final Object evt = exchange.getIn().getBody();
     if (evt != null) {
       final ProducerData<String, Message> data =
           new ProducerData<String, Message>(
               topicName, new Message(BinaryHelper.getInstance().getBytes(evt)));
       producer.send(data);
       if (LOG.isInfoEnabled()) {
         LOG.info("Kafka Producer send : " + evt);
       }
     }
   }
 }