We need a way for subservient stores such as FS attachments to get transactions
from the main store so that it can know to rollback if there is an error in the
main store.
In order to Cloud/DataNucleus store plug in seamlessly and function with FS
attachments, FS attachments needs to be able to get transactions from the main
store without knowing or caring what that main store is.
I propose this:
Add a new storage submodule: xwiki-platform-store-transactionprovider which
provides this interface which extends javax.inject.Provider:
@ComponentRole
public interface XWikiTransactionProvider
extends Provider<StartableTransactionRunnable<? extends XWikiTransaction>>
{
// No additional functions, just the get() from Provider.
}
The default implementation for now will be a wrapper which picks out the real
TransactionProvider based on what the main store is, as defined in xwiki.cfg.
This will allow code to get a transaction from the main store then get
TransactionRunnables from the main store and use them with this transaction and
be assured
that you won't be using a Hibernate TransactionRunnable with a Cassandra
Transaction.
WDYT?
Caleb
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs