All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.hibernate.resource.transaction.backend.jta.internal.synchronization.SynchronizationCallbackTarget Maven / Gradle / Ivy

There is a newer version: 7.0.0.Alpha1
Show newest version
/*
 * Hibernate, Relational Persistence for Idiomatic Java
 *
 * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
 * See the lgpl.txt file in the root directory or .
 */
package org.hibernate.resource.transaction.backend.jta.internal.synchronization;

/**
 * Defines "inflow" for JTA transactions from the perspective of Hibernate's registered JTA Synchronization
 * back into the TransactionCoordinator by means of the SynchronizationCallbackCoordinator.
 * 

* That's a mouthful :) The way it works is like this...

    *
  • * Hibernate will register a JTA {@link javax.transaction.Synchronization} implementation * ({@link RegisteredSynchronization}) which allows * it to listen for completion of the JTA transaction. *
  • *
  • * That RegisteredSynchronization is given a SynchronizationCallbackCoordinator which it uses * to route the transaction completion calls back into Hibernate. The SynchronizationCallbackCoordinator * contract applies various behaviors around this process. See the impls for details. *
  • *
  • * The SynchronizationCallbackCoordinator is handed a SynchronizationCallbackTarget which is the specific * means for it to "route the transaction completion calls back into Hibernate". The SynchronizationCallbackTarget * is most often the TransactionCoordinator impl or a direct delegate of the TransactionCoordinator impl. In * that sense, SynchronizationCallbackTarget is the contract between the SynchronizationCallbackCoordinator * and the TransactionCoordinator. *
  • *
* * @author Steve Ebersole */ public interface SynchronizationCallbackTarget { /** * Is the callback target still active? Generally this is checked by the caller prior to calling * {@link #beforeCompletion} or {@link #afterCompletion} * * @return {@code true} indicates the target is active; {@code false} indicates it is not. */ boolean isActive(); /** * Callback of before-completion. * * @see javax.transaction.Synchronization#beforeCompletion */ void beforeCompletion(); /** * Callback of after-completion. * * @param successful Was the transaction successful? * * @see javax.transaction.Synchronization#afterCompletion */ void afterCompletion(boolean successful, boolean delayed); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy