package io.trygvis.container.myapp; import io.trygvis.container.tx.PlatformTransactionManager; public class MyComponent_Tx extends MyComponent { private final PlatformTransactionManager transactionManager; private final MyComponent target; public MyComponent_Tx(PlatformTransactionManager tm) { this.transactionManager = tm; this.target = new MyComponent(); } public void doProcessing(final int x) { transactionManager.doInTransaction( PlatformTransactionManager.TransactionIsolation.ISOLATION_DEFAULT, PlatformTransactionManager.TransactionPropagation.PROPAGATION_REQUIRED, new PlatformTransactionManager.TransactionTemplate() { @Override public Object doInTransaction() { target.doProcessing(x); return null; } }); } }