javax.enterprise.event.TransactionPhase Maven / Gradle / Ivy
Show all versions of jakarta.enterprise.cdi-api Show documentation
/*
* JBoss, Home of Professional Open Source
* Copyright 2010, Red Hat, Inc., and individual contributors
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package javax.enterprise.event;
/**
*
* Distinguishes the various kinds of transactional {@linkplain javax.enterprise.event.Observes observer methods} from regular
* observer methods which are notified immediately.
*
*
* Transactional observer methods are observer methods which receive event notifications during the before or after completion
* phase of the transaction in which the event was fired. If no transaction is in progress when the event is fired, they are
* notified at the same time as other observers.
* If the transaction is in progress, but {@link javax.transaction.Synchronization} callback cannot be registered due to the transaction being already
* marked for rollback or in state where {@link javax.transaction.Synchronization} callbacks cannot be registered, the {@link #BEFORE_COMPLETION},
* {@link #AFTER_COMPLETION} and {@link #AFTER_FAILURE} observer methods are notified at the same time as other observers,
* but {@link #AFTER_SUCCESS} observer methods get skipped.
*
*
* @author Pete Muir
* @author Gavin King
*
*/
public enum TransactionPhase {
/**
*
* Identifies a regular observer method, called when the event is fired.
*
*/
IN_PROGRESS,
/**
*
* Identifies a before completion observer method, called during the before completion phase of the transaction.
*
*
* Transactional observer will be notified if there is no transaction in progress, or the transaction is in progress,
* but {@link javax.transaction.Synchronization} callback cannot be registered due to the transaction being already
* marked for rollback or in state where {@link javax.transaction.Synchronization} callbacks cannot be registered.
*
*/
BEFORE_COMPLETION,
/**
*
* Identifies an after completion observer method, called during the after completion phase of the transaction.
*
*
* Transactional observer will be notified if there is no transaction in progress, or the transaction is in progress,
* but {@link javax.transaction.Synchronization} callback cannot be registered due to the transaction being already
* marked for rollback or in state where {@link javax.transaction.Synchronization} callbacks cannot be registered.
*
*/
AFTER_COMPLETION,
/**
*
* Identifies an after failure observer method, called during the after completion phase of the transaction, only when the
* transaction fails.
*
*
* Transactional observer will be notified will also get invoked if there is no transaction in progress, or the transaction is in progress,
* but {@link javax.transaction.Synchronization} callback cannot be registered due to the transaction being already
* marked for rollback or in state where {@link javax.transaction.Synchronization} callbacks cannot be registered.
*
*/
AFTER_FAILURE,
/**
*
* Identifies an after success observer method, called during the after completion phase of the transaction, only when the
* transaction completes successfully.
*
*/
AFTER_SUCCESS
}