package eu.europeana.cloud.service.dps.examples.xslt; import java.util.ArrayList; import java.util.List; import java.util.Properties; import kafka.javaapi.producer.Producer; import kafka.producer.KeyedMessage; import kafka.producer.ProducerConfig; import eu.europeana.cloud.service.dps.DpsTask; public class KafkaXSLTTaskProducer { public static void main(String[] args) { // args[0]: metadata broker list (e.g., ecloud.eanadev.org:9093) // args[1]: topic name (e.g., franco_maria_topic) // args[2]: record URI // (e.g // http://ecloud.eanadev.org:8080/ecloud-service-mcs-rest-0.3-SNAPSHOT/records/" // + "L9WSPSMVQ85/representations/edm/versions/b17c4f60-70d0-11e4-8fe1-00163eefc9c8/files/af7d3a77-4b00-485f-832c-a33c5a3d7b56 // ) // args[3]: XSLT URL (all records will be processed by this XSLT) // http://ecloud.eanadev.org:8080/hera/sample_xslt.xslt // args[4]: output extension (do we need an extension as output of the // topology?) Properties props = new Properties(); props.put("metadata.broker.list", args[0]); props.put("serializer.class", "eu.europeana.cloud.service.dps.storm.kafka.JsonEncoder"); props.put("request.required.acks", "1"); ProducerConfig config = new ProducerConfig(props); Producer<String, DpsTask> producer = new Producer<String, DpsTask>( config); String key = ""; DpsTask msg = new DpsTask(); List<String> records = new ArrayList<String>(); records.add(args[2]); msg.addDataEntry("FILE_URLS", records); msg.addParameter("XSLT_URL", args[3]); KeyedMessage<String, DpsTask> data = new KeyedMessage<String, DpsTask>( args[1], key, msg); producer.send(data); producer.close(); } }