package com.netflix.schlep.sqs.consumer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.inject.Inject; import com.netflix.schlep.consumer.MessageConsumer; import com.netflix.schlep.consumer.MessageConsumerFactory; import com.netflix.schlep.exception.ConsumerException; import com.netflix.schlep.serializer.Mapper; /** * Implementation of a consumer that reads messages from an SQS queue * * @author elandau */ public class SqsMessageConsumerFactory implements MessageConsumerFactory { private static final Logger LOG = LoggerFactory.getLogger(SqsMessageConsumerFactory.class); @Inject public SqsMessageConsumerFactory() { } @Override public MessageConsumer createConsumer(String id, Mapper mapper) throws ConsumerException { try { SqsMessageConsumer.Builder<?> builder = SqsMessageConsumer.builder(); builder.withId(id); LOG.info("Building " + builder.toString()); // builder.withRegion(); // TODO: Bind region mapper.apply(builder); return builder.build(); } catch (Exception e) { throw new ConsumerException("Failed to create instance of SimMessageConsumer", e); } } }