11/* 
2-  * Copyright 2002-2014  the original author or authors. 
2+  * Copyright 2002-2017  the original author or authors. 
33 * 
44 * Licensed under the Apache License, Version 2.0 (the "License"); 
55 * you may not use this file except in compliance with the License. 
@@ -52,22 +52,25 @@ public interface TransactionSynchronization extends Flushable {
5252	 * Supposed to unbind resources from TransactionSynchronizationManager if managing any. 
5353	 * @see TransactionSynchronizationManager#unbindResource 
5454	 */ 
55- 	void  suspend ();
55+ 	default  void  suspend () {
56+ 	}
5657
5758	/** 
5859	 * Resume this synchronization. 
5960	 * Supposed to rebind resources to TransactionSynchronizationManager if managing any. 
6061	 * @see TransactionSynchronizationManager#bindResource 
6162	 */ 
62- 	void  resume ();
63+ 	default  void  resume () {
64+ 	}
6365
6466	/** 
6567	 * Flush the underlying session to the datastore, if applicable: 
6668	 * for example, a Hibernate/JPA session. 
6769	 * @see org.springframework.transaction.TransactionStatus#flush() 
6870	 */ 
6971	@ Override 
70- 	void  flush ();
72+ 	default  void  flush () {
73+ 	}
7174
7275	/** 
7376	 * Invoked before transaction commit (before "beforeCompletion"). 
@@ -83,7 +86,8 @@ public interface TransactionSynchronization extends Flushable {
8386	 * (note: do not throw TransactionException subclasses here!) 
8487	 * @see #beforeCompletion 
8588	 */ 
86- 	void  beforeCommit (boolean  readOnly );
89+ 	default  void  beforeCommit (boolean  readOnly ) {
90+ 	}
8791
8892	/** 
8993	 * Invoked before transaction commit/rollback. 
@@ -96,7 +100,8 @@ public interface TransactionSynchronization extends Flushable {
96100	 * @see #beforeCommit 
97101	 * @see #afterCompletion 
98102	 */ 
99- 	void  beforeCompletion ();
103+ 	default  void  beforeCompletion () {
104+ 	}
100105
101106	/** 
102107	 * Invoked after transaction commit. Can perform further operations right 
@@ -113,7 +118,8 @@ public interface TransactionSynchronization extends Flushable {
113118	 * @throws RuntimeException in case of errors; will be <b>propagated to the caller</b> 
114119	 * (note: do not throw TransactionException subclasses here!) 
115120	 */ 
116- 	void  afterCommit ();
121+ 	default  void  afterCommit () {
122+ 	}
117123
118124	/** 
119125	 * Invoked after transaction commit/rollback. 
@@ -133,6 +139,7 @@ public interface TransactionSynchronization extends Flushable {
133139	 * @see #STATUS_UNKNOWN 
134140	 * @see #beforeCompletion 
135141	 */ 
136- 	void  afterCompletion (int  status );
142+ 	default  void  afterCompletion (int  status ) {
143+ 	}
137144
138145}
0 commit comments