/** * @param endpoint * @throws ClassNotFoundException */ public KafkaProducer(final KafkaEndpoint endpoint) throws ClassNotFoundException { super(endpoint); this.endpoint = endpoint; final Properties props = new Properties(); props.put("zk.connect", endpoint.getZkConnect()); if (!"".equals(endpoint.getSerializerClass())) { props.put("serializer.class", endpoint.getSerializerClass()); } if (!"".equals(endpoint.getPartitionerClass())) { props.put("partitioner.class", endpoint.getPartitionerClass()); } props.put("producer.type", endpoint.getProducerType()); props.put("broker.list", endpoint.getBrokerList()); props.put("buffer.size", endpoint.getBufferSize()); props.put("connect.timeout.ms", endpoint.getConnectTimeoutMs()); props.put("socket.timeout.ms", endpoint.getSocketTimeoutMs()); props.put("reconnect.interval", endpoint.getReconnectInterval()); props.put("max.message.size", endpoint.getMaxMessageSize()); props.put("compression.codec", endpoint.getCompressionCodec()); props.put("compressed.topics", endpoint.getCompressedTopics()); props.put("zk.read.num.retries", endpoint.getZkReadNumRetries()); // producer.type=async if ("async".equals(endpoint.getProducerType())) { props.put("queue.time", endpoint.getQueueTime()); props.put("queue.size", endpoint.getQueueSize()); props.put("batch.size", endpoint.getBatchSize()); if (!"".equals(endpoint.getEventHandler())) { props.put("event.handler", endpoint.getEventHandler()); } props.put("event.handler.props", endpoint.getEventHandlerProps()); if (!"".equals(endpoint.getCallbackHandler())) { props.put("callback.handler", endpoint.getCallbackHandler()); } props.put("callback.handler.props", endpoint.getCallbackHandlerProps()); } final ProducerConfig config = new ProducerConfig(props); if (LOG.isInfoEnabled()) { LOG.info("Kafka producer Component initialized"); } producer = new kafka.javaapi.producer.Producer<String, Message>(config); }