Folks (especially Valentin),

I want to fix https://issues.apache.org/jira/browse/IGNITE-1864 (Cannot
configure jndiNames for CacheJndiTmLookup).

I was going to fix it as Val suggested in comments

I think we should deprecate CacheTmLookup interface with its
> implementations and txManagerLookupClassName configuration property. We can
> use JCache factory instead:
>


TransactionConfiguration.setTxManagerFactory(Factory<TransactionManager>
> factory)


I like the idea with Facroty, but I faced with the following API issue. The
problem is that TransactionConfiguration in core-module, TransactionManager
is a part of jta, but core-module doesn't have jta as a dependency. As a
result the suggested API cannot be compiled.

I see the following possible solutions (to stay in bounds of solution with
Factory):
1. Remove TransactionManager compile time checking from Factory:

TransactionConfiguration.setTxManagerFactory(Factory factory)

2. Use the same approach as we already have with CacheTmLookup:

TransactionConfiguration.setTxManagerFactoryClassName(String
txFactoryClsName)

and create

interface TransactionManagerFactory extends Factory<TransactionManager>

In this way a user gets compile time checking.

3. Add jta dependency into core-module. But I think it's not an option as
long as core module doesn't have any dependencies (except jcache).

I'd like the first option.


Thanks,
-- Artem --

Reply via email to