private void addTable(String tableId, Config config) { if (tableContexts.containsKey(tableId)) { throw new SamzaException("Table " + tableId + " already exists"); } JavaTableConfig tableConfig = new JavaTableConfig(config); String providerFactoryClassName = tableConfig.getTableProviderFactory(tableId); TableProviderFactory tableProviderFactory = Util.getObj(providerFactoryClassName, TableProviderFactory.class); TableCtx ctx = new TableCtx(); ctx.tableProvider = tableProviderFactory.getTableProvider(tableId); tableContexts.put(tableId, ctx); }
@Test public void testGetTableProperties() { Map<String, String> map = new HashMap<>(); map.put("stores.t1.key.serde", "key-serde"); map.put("stores.t1.msg.serde", "msg-serde"); map.put("tables.t1.provider.factory", "t1-provider-factory"); JavaTableConfig tableConfig = new JavaTableConfig(new MapConfig(map)); assertEquals("t1-provider-factory", tableConfig.getTableProviderFactory("t1")); assertEquals("key-serde", tableConfig.getKeySerde("t1")); assertEquals("msg-serde", tableConfig.getMsgSerde("t1")); }
@Test public void testWithSerdes() { List<TableDescriptor> descriptors = Arrays.asList( new MockLocalTableDescriptor("t1", KVSerde.of(new StringSerde(), new IntegerSerde())), new MockLocalTableDescriptor("t2", KVSerde.of(new StringSerde(), new IntegerSerde())) ); Config jobConfig = new MapConfig(TableConfigGenerator.generateSerdeConfig(descriptors)); JavaTableConfig javaTableConfig = new JavaTableConfig(jobConfig); assertNotNull(javaTableConfig.getKeySerde("t1")); assertNotNull(javaTableConfig.getMsgSerde("t1")); assertNotNull(javaTableConfig.getKeySerde("t2")); assertNotNull(javaTableConfig.getMsgSerde("t2")); MapConfig tableConfig = new MapConfig(TableConfigGenerator.generate(jobConfig, descriptors)); javaTableConfig = new JavaTableConfig(tableConfig); assertNotNull(javaTableConfig.getTableProviderFactory("t1")); assertNotNull(javaTableConfig.getTableProviderFactory("t2")); }