public Source(SourceConfig config) throws ClassNotFoundException { this.sourceRegex = Pattern.compile(config.getSourceRegex()); this.sourceName = config.getName(); DeserializerFactory dFactory = dff.getFactory(config.getDeserializerConfig()); this.deserProcessor = new DeserializerProcessor(dFactory.newInstance()); List<OperationConfig> operationConfigs = config.getOperationConfigs(); if (operationConfigs.size() > 0) { OperationFactoryFactory off = new OperationFactoryFactory(); for (OperationConfig operationConfig : operationConfigs) { this.operationProcessors.add(new OperationProcessor(off.getFactory(operationConfig))); } } this.containsStrings.addAll(config.getContainsStrings()); for (String strRegex : config.getRegexPatterns()) { this.regexPatterns.add(Pattern.compile(strRegex)); } }
public Source(SourceConfig config) throws ClassNotFoundException { this.sourceRegex = Pattern.compile(config.getSourceRegex()); this.sourceName = config.getName(); DeserializerFactory dFactory = dff.getFactory(config.getDeserializerConfig()); this.deserProcessor = new DeserializerProcessor(dFactory.newInstance()); List<OperationConfig> operationConfigs = config.getOperationConfigs(); if (operationConfigs.size() > 0) { OperationFactoryFactory off = new OperationFactoryFactory(); for (OperationConfig operationConfig : operationConfigs) { this.operationProcessors.add(new OperationProcessor(off.getFactory(operationConfig))); } } this.containsStrings.addAll(config.getContainsStrings()); for (String strRegex : config.getRegexPatterns()) { this.regexPatterns.add(Pattern.compile(strRegex)); } }
@Test public void testLoadConfg() { BenderConfig config = BenderConfig.load("/com/nextdoor/bender/partition/partition_config.json"); PartitionOperationConfig op = (PartitionOperationConfig) config.getSources().get(0).getOperationConfigs().get(0); PartitionSpec spec = op.getPartitionSpecs().get(0); assertEquals("type", spec.getName()); assertEquals(Interpreter.STRING, spec.getInterpreter()); List<String> expected = Arrays.asList("one", "two", "three"); assertEquals(expected, spec.getSources()); }
@Test public void testLoadConfgTime() { BenderConfig config = BenderConfig.load("/com/nextdoor/bender/partition/partition_config_time.json"); PartitionOperationConfig op = (PartitionOperationConfig) config.getSources().get(0).getOperationConfigs().get(0); PartitionSpec spec = op.getPartitionSpecs().get(0); assertEquals("dt", spec.getName()); assertEquals(Interpreter.SECONDS, spec.getInterpreter()); List<String> expected = Arrays.asList("epoch"); assertEquals(expected, spec.getSources()); assertEquals("2017-01-19 05:05:59", spec.interpret("1484802359")); }
@Test public void testStringFormatLower() { BenderConfig config = BenderConfig.load("/com/nextdoor/bender/partition/partition_config_format.json"); PartitionOperationConfig op = (PartitionOperationConfig) config.getSources().get(0).getOperationConfigs().get(0); PartitionSpec spec = op.getPartitionSpecs().get(0); spec.setStringFormat(StringFormat.TOLOWER); assertEquals("type", spec.getName()); assertEquals(Interpreter.STRING, spec.getInterpreter()); assertEquals("thisisatest", spec.interpret("ThisIsATest")); } }
@Test public void testStringFormatUpper() { BenderConfig config = BenderConfig.load("/com/nextdoor/bender/partition/partition_config_format.json"); PartitionOperationConfig op = (PartitionOperationConfig) config.getSources().get(0).getOperationConfigs().get(0); PartitionSpec spec = op.getPartitionSpecs().get(0); assertEquals("type", spec.getName()); assertEquals(Interpreter.STRING, spec.getInterpreter()); assertEquals(StringFormat.TOUPPER, spec.getStringFormat()); assertEquals("THISISATEST", spec.interpret("ThisIsATest")); }