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

Reply via email to