private TwoWayKey2StringMapper getTwoWayMapper() { String mapperClass = config.key2StringMapper(); if (mapperClass != null) { ClassLoader classLoader = JdbcConfigurationUtil.class.getClassLoader(); try { return (TwoWayKey2StringMapper) Util.loadClass(mapperClass, classLoader).newInstance(); } catch (IllegalAccessException | InstantiationException e) { throw new CacheConfigurationException(String.format("Unabled to load TwoWayKey2StringMapper '%s' for %s store", mapperClass, SOURCE), e); } } return new DefaultTwoWayKey2StringMapper(); } }
@Override public void start() { if (configuration.manageConnectionFactory()) { ConnectionFactory factory = ConnectionFactory.getConnectionFactory(configuration.connectionFactory().connectionFactoryClass()); factory.start(configuration.connectionFactory(), factory.getClass().getClassLoader()); initializeConnectionFactory(factory); } try { Object mapper = Util.loadClassStrict(configuration.key2StringMapper(), globalConfiguration.classLoader()).newInstance(); if (mapper instanceof Key2StringMapper) key2StringMapper = (Key2StringMapper) mapper; } catch (Exception e) { log.errorf("Trying to instantiate %s, however it failed due to %s", configuration.key2StringMapper(), e.getClass().getName()); throw new IllegalStateException("This should not happen.", e); } if (trace) { log.tracef("Using key2StringMapper: %s", key2StringMapper.getClass().getName()); } if (configuration.preload()) { enforceTwoWayMapper("preload"); } if (isDistributedCache) { enforceTwoWayMapper("distribution/rehashing"); } }
assertEquals("version", store.table().timestampColumnName()); assertTrue(store.async().enabled()); assertEquals("DummyKey2StringMapper", store.key2StringMapper()); assertTrue(store.shared()); assertTrue(store.preload());