Source:
<code>public void start() { channelFactory = new ChannelFactory(); if (marshaller == null) { marshaller = configuration.marshaller(); if (marshaller == null) { Class<? extends Marshaller> clazz = configuration.marshallerClass(); if (clazz == GenericJBossMarshaller.class && !configuration.serialWhitelist().isEmpty()) marshaller = new GenericJBossMarshaller(configuration.getClassWhiteList()); else marshaller = Util.getInstance(clazz); } } marshallerRegistry.registerMarshaller(marshaller); marshallerRegistry.registerMarshaller(new UTF8StringMarshaller()); codec = CodecFactory.getCodec(configuration.version()); listenerNotifier = new ClientListenerNotifier(codec, marshaller, channelFactory, configuration.getClassWhiteList()); ExecutorFactory executorFactory = configuration.asyncExecutorFactory().factory(); if (executorFactory == null) { executorFactory = Util.getInstance(configuration.asyncExecutorFactory().factoryClass()); } ExecutorService asyncExecutorService = executorFactory.getExecutor(configuration.asyncExecutorFactory().properties()); channelFactory.start(codec, configuration, defaultCacheTopologyId, marshaller, asyncExecutorService, listenerNotifier, Collections.singletonList(listenerNotifier::failoverListeners), marshallerRegistry); counterManager.start(channelFactory, codec, configuration, listenerNotifier); synchronized (cacheName2RemoteCache) { for (RemoteCacheHolder rcc : cacheName2RemoteCache.values()) { startRemoteCache(rcc); } } log.version(RemoteCacheManager.class.getPackage().getImplementationVersion()); warnAboutUberJarDuplicates(); syncTransactionTable.setTimeout(configuration.transaction().timeout()); <START> xaTransactionTable.setTimeout(configuration.transaction().timeout()); <END> started = true; }</code><technical_language>initialize tx tables in constructor, configuration there, need setTimeout() in interface</technical_language>

Target:
public void start() { channelFactory = new ChannelFactory(); if (marshaller == null) { marshaller = configuration.marshaller(); if (marshaller == null) { Class<? extends Marshaller> clazz = configuration.marshallerClass(); if (clazz == GenericJBossMarshaller.class && !configuration.serialWhitelist().isEmpty()) marshaller = new GenericJBossMarshaller(configuration.getClassWhiteList()); else marshaller = Util.getInstance(clazz); } } marshallerRegistry.registerMarshaller(marshaller); marshallerRegistry.registerMarshaller(new UTF8StringMarshaller()); codec = CodecFactory.getCodec(configuration.version()); listenerNotifier = new ClientListenerNotifier(codec, marshaller, channelFactory, configuration.getClassWhiteList()); ExecutorFactory executorFactory = configuration.asyncExecutorFactory().factory(); if (executorFactory == null) { executorFactory = Util.getInstance(configuration.asyncExecutorFactory().factoryClass()); } ExecutorService asyncExecutorService = executorFactory.getExecutor(configuration.asyncExecutorFactory().properties()); channelFactory.start(codec, configuration, defaultCacheTopologyId, marshaller, asyncExecutorService, listenerNotifier, Collections.singletonList(listenerNotifier::failoverListeners), marshallerRegistry); counterManager.start(channelFactory, codec, configuration, listenerNotifier); synchronized (cacheName2RemoteCache) { for (RemoteCacheHolder rcc : cacheName2RemoteCache.values()) { startRemoteCache(rcc); } } log.version(RemoteCacheManager.class.getPackage().getImplementationVersion()); warnAboutUberJarDuplicates(); started = true; }