1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.mycore.frontend.jersey.filter;
20
21 import org.mycore.common.MCRSession;
22 import org.mycore.common.MCRSessionMgr;
23 import org.mycore.common.MCRTransactionHelper;
24
25 import jakarta.ws.rs.container.ContainerRequestContext;
26 import jakarta.ws.rs.container.ContainerRequestFilter;
27 import jakarta.ws.rs.container.ContainerResponseContext;
28 import jakarta.ws.rs.container.ContainerResponseFilter;
29
30 public class MCRDBTransactionFilter implements ContainerRequestFilter, ContainerResponseFilter {
31
32 @Override
33 public void filter(ContainerRequestContext request, ContainerResponseContext response) {
34 MCRSession session = MCRSessionMgr.getCurrentSession();
35 if (MCRTransactionHelper.transactionRequiresRollback()) {
36 MCRTransactionHelper.rollbackTransaction();
37 } else {
38 MCRTransactionHelper.commitTransaction();
39 }
40 }
41
42 @Override
43 public void filter(ContainerRequestContext request) {
44 MCRSessionMgr.getCurrentSession();
45 MCRTransactionHelper.beginTransaction();
46 }
47
48 }