package com.netflix.schlep.sqs.producer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.inject.Inject; import com.netflix.schlep.exception.ProducerException; import com.netflix.schlep.producer.MessageProducer; import com.netflix.schlep.producer.MessageProducerFactory; import com.netflix.schlep.serializer.Mapper; public class SqsMessageProducerFactory implements MessageProducerFactory { private static final Logger LOG = LoggerFactory.getLogger(SqsMessageProducerFactory.class); @Inject public SqsMessageProducerFactory() { } @Override public MessageProducer create(String id, Mapper mapper) throws ProducerException { try { SqsMessageProducer.Builder<?> builder = SqsMessageProducer.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 ProducerException("Failed to create instance of SimMessageProducer", e); } } }