package com.amazonaws.services.kinesis; import java.util.HashMap; import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.amazonaws.services.kinesis.clientlibrary.interfaces.IRecordProcessor; import com.amazonaws.services.kinesis.clientlibrary.interfaces.IRecordProcessorFactory; /** * Simple factory class to generate a standalone Kinesis Aggregator * IRecordProcessor for the application */ public class ManagedClientProcessorFactory implements IRecordProcessorFactory { private static Map<String, Object> createdProcessors = new HashMap<>(); private final Log LOG = LogFactory .getLog(ManagedClientProcessorFactory.class); private ManagedClientProcessor managedProcessor; public ManagedClientProcessorFactory(ManagedClientProcessor managedProcessor) { this.managedProcessor = managedProcessor; } /** * {@inheritDoc} */ public IRecordProcessor createProcessor() { try { LOG.info("Creating new Managed Client Processor"); ManagedClientProcessor p = this.managedProcessor.copy(); createdProcessors.put(p.toString(), p); return p; } catch (Exception e) { LOG.error(e); return null; } } }