|
1 | 1 | package com.mcplusa.sumologic; |
2 | 2 |
|
3 | | -import com.mcplusa.sumologic.KinesisMessageModel; |
4 | | -import com.mcplusa.sumologic.KinesisMessageModelSumologicTransformer; |
5 | | -import com.mcplusa.sumologic.implementations.SumologicEmitter; |
| 3 | +import org.apache.commons.logging.Log; |
| 4 | +import org.apache.commons.logging.LogFactory; |
6 | 5 |
|
| 6 | +import com.mcplusa.sumologic.SimpleKinesisMessageModel; |
| 7 | +import com.mcplusa.sumologic.CloudWatchMessageModelSumologicTransformer; |
| 8 | +import com.mcplusa.sumologic.implementations.SumologicEmitter; |
7 | 9 | import com.amazonaws.services.kinesis.connectors.interfaces.IKinesisConnectorPipeline; |
8 | 10 | import com.amazonaws.services.kinesis.connectors.KinesisConnectorConfiguration; |
9 | 11 | import com.amazonaws.services.kinesis.connectors.impl.BasicMemoryBuffer; |
|
20 | 22 | * <ul> |
21 | 23 | * <li>{@link SumologicEmitter}</li> |
22 | 24 | * <li>{@link BasicMemoryBuffer}</li> |
23 | | - * <li>{@link KinesisMessageModelSumologicTransformer}</li> |
| 25 | + * <li>{@link CloudWatchMessageModelSumologicTransformer}</li> |
24 | 26 | * <li>{@link AllPassFilter}</li> |
25 | 27 | * </ul> |
26 | 28 | */ |
27 | 29 | public class SumologicMessageModelPipeline implements |
28 | | - IKinesisConnectorPipeline<KinesisMessageModel, String> { |
| 30 | + IKinesisConnectorPipeline<SimpleKinesisMessageModel, String> { |
29 | 31 |
|
| 32 | + private static final Log LOG = LogFactory.getLog(SumologicMessageModelPipeline.class); |
| 33 | + |
30 | 34 | @Override |
31 | 35 | public IEmitter<String> getEmitter(KinesisConnectorConfiguration configuration) { |
32 | 36 | return new SumologicEmitter(configuration); |
33 | 37 | } |
34 | 38 |
|
35 | 39 | @Override |
36 | | - public IBuffer<KinesisMessageModel> getBuffer(KinesisConnectorConfiguration configuration) { |
37 | | - return new BasicMemoryBuffer<KinesisMessageModel>(configuration); |
| 40 | + public IBuffer<SimpleKinesisMessageModel> getBuffer(KinesisConnectorConfiguration configuration) { |
| 41 | + return new BasicMemoryBuffer<SimpleKinesisMessageModel>(configuration); |
38 | 42 | } |
39 | 43 |
|
40 | 44 | @Override |
41 | | - public ITransformer<KinesisMessageModel, String> |
| 45 | + public ITransformer<SimpleKinesisMessageModel, String> |
42 | 46 | getTransformer(KinesisConnectorConfiguration configuration) { |
43 | | - return new KinesisMessageModelSumologicTransformer(); |
| 47 | + |
| 48 | + // Load specified class |
| 49 | + String argClass = ((KinesisConnectorForSumologicConfiguration)configuration).TRANSFORMER_CLASS; |
| 50 | + String className = "com.mcplusa.sumologic."+argClass; |
| 51 | + ClassLoader classLoader = SumologicMessageModelPipeline.class.getClassLoader(); |
| 52 | + Class ModelClass = null; |
| 53 | + try { |
| 54 | + ModelClass = classLoader.loadClass(className); |
| 55 | + ITransformer<SimpleKinesisMessageModel, String> ITransformerObject = (ITransformer<SimpleKinesisMessageModel, String>)ModelClass.newInstance(); |
| 56 | + LOG.info("Using transformer: "+ITransformerObject.getClass().getName()); |
| 57 | + return ITransformerObject; |
| 58 | + } catch (ClassNotFoundException e) { |
| 59 | + LOG.error("Class not found: "+className+" error: "+e.getMessage()); |
| 60 | + } catch (InstantiationException e) { |
| 61 | + LOG.error("Class not found: "+className+" error: "+e.getMessage()); |
| 62 | + } catch (IllegalAccessException e) { |
| 63 | + LOG.error("Class not found: "+className+" error: "+e.getMessage()); |
| 64 | + } |
| 65 | + |
| 66 | + return new DefaultKinesisMessageModelSumologicTransformer(); |
44 | 67 | } |
45 | 68 |
|
46 | 69 | @Override |
47 | | - public IFilter<KinesisMessageModel> getFilter(KinesisConnectorConfiguration configuration) { |
48 | | - return new AllPassFilter<KinesisMessageModel>(); |
| 70 | + public IFilter<SimpleKinesisMessageModel> getFilter(KinesisConnectorConfiguration configuration) { |
| 71 | + return new AllPassFilter<SimpleKinesisMessageModel>(); |
49 | 72 | } |
50 | 73 |
|
51 | 74 | } |
0 commit comments