summaryrefslogtreecommitdiff
path: root/myapp/src/main/java/io/trygvis/container/myapp/MyComponent_Tx.java
diff options
context:
space:
mode:
Diffstat (limited to 'myapp/src/main/java/io/trygvis/container/myapp/MyComponent_Tx.java')
-rw-r--r--myapp/src/main/java/io/trygvis/container/myapp/MyComponent_Tx.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/myapp/src/main/java/io/trygvis/container/myapp/MyComponent_Tx.java b/myapp/src/main/java/io/trygvis/container/myapp/MyComponent_Tx.java
new file mode 100644
index 0000000..445d236
--- /dev/null
+++ b/myapp/src/main/java/io/trygvis/container/myapp/MyComponent_Tx.java
@@ -0,0 +1,26 @@
+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<Object>() {
+ @Override
+ public Object doInTransaction() {
+ target.doProcessing(x);
+ return null;
+ }
+ });
+ }
+}