/*
* JBoss, Home of Professional Open Source
* Copyright 2010, Red Hat Inc., and individual contributors as indicated
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.as.ee.component.interceptors;
/**
* Class that maintains interceptor ordering for various interceptor chains
*
* @author Stuart Douglas
*/
public class InterceptorOrder {
private InterceptorOrder() {
}
public static final class Component {
public static final int INITIAL_INTERCEPTOR = 0x100;
public static final int CONCURRENT_CONTEXT = 0x180;
public static final int SYNCHRONIZATION_INTERCEPTOR = 0x500;
public static final int REENTRANCY_INTERCEPTOR = 0x501;
public static final int BMT_TRANSACTION_INTERCEPTOR = 0x520;
public static final int ENTITY_BEAN_REMOVE_INTERCEPTOR = 0x550;
public static final int JPA_SFSB_INTERCEPTOR = 0x560;
public static final int JPA_SESSION_BEAN_INTERCEPTOR = 0x600;
public static final int CMP_RELATIONSHIP_INTERCEPTOR = 0x800;
// WS handlers, user and CDI interceptors plus the bean method are considered user execution time
public static final int EJB_EXECUTION_TIME_INTERCEPTOR = 0x850;
// JSR 109 - Version 1.3 - 6.2.2.4 Security
// For EJB based service implementations, Handlers run after method level authorization has occurred.
// JSR 109 - Version 1.3 - 6.2.2.5 Transaction
// Handlers run under the transaction context of the component they are associated with.
public static final int WS_HANDLERS_INTERCEPTOR = 0x900;
public static final int XTS_INTERCEPTOR = 0x901;
/**
* All user level interceptors are added with the same priority, so they execute
* in the order that they are added.
*/
public static final int INTERCEPTOR_USER_INTERCEPTORS = 0xA00;
/**
* @Around* methods defined on the component class or its superclasses
*/
public static final int CDI_INTERCEPTORS = 0xB00;
public static final int COMPONENT_USER_INTERCEPTORS = 0xC00; //interceptors defined on the component class, these have to run after CDI interceptors
public static final int TERMINAL_INTERCEPTOR = 0xD00;
private Component() {
}
}
public static final class AroundConstruct {
public static final int CONSTRUCTION_START_INTERCEPTOR = 0xA00;
public static final int INTERCEPTOR_AROUND_CONSTRUCT = 0xB00;
public static final int WELD_AROUND_CONSTRUCT_INTERCEPTORS = 0xC00;
public static final int CONSTRUCT_COMPONENT = 0xD00;
public static final int TERMINAL_INTERCEPTOR = 0xE00;
private AroundConstruct() {
}
}
public static final class ComponentPostConstruct {
public static final int STARTUP_COUNTDOWN_INTERCEPTOR = 0x050;
public static final int TCCL_INTERCEPTOR = 0x100;
public static final int CONCURRENT_CONTEXT = 0x180;
public static final int EJB_SESSION_CONTEXT_INTERCEPTOR = 0x200;
public static final int WELD_INJECTION_CONTEXT_INTERCEPTOR = 0x300;
public static final int JPA_SFSB_PRE_CREATE = 0x400;
public static final int TRANSACTION_INTERCEPTOR = 0x500;
public static final int JNDI_NAMESPACE_INTERCEPTOR = 0x600;
public static final int CREATE_CDI_INTERCEPTORS = 0x0680;
public static final int INTERCEPTOR_INSTANTIATION_INTERCEPTORS = 0x700;
public static final int INTERCEPTOR_RESOURCE_INJECTION_INTERCEPTORS = 0x800;
public static final int INTERCEPTOR_WELD_INJECTION = 0x900;
public static final int AROUND_CONSTRUCT_CHAIN = 0xA00;
public static final int COMPONENT_RESOURCE_INJECTION_INTERCEPTORS = 0xB00;
public static final int EJB_SET_CONTEXT_METHOD_INVOCATION_INTERCEPTOR = 0xC00;
public static final int COMPONENT_WELD_INJECTION = 0xD00;
public static final int JPA_SFSB_CREATE = 0xE00;
public static final int REQUEST_SCOPE_ACTIVATING_INTERCEPTOR = 0xE80;
public static final int INTERCEPTOR_USER_INTERCEPTORS = 0xF00;
public static final int CDI_INTERCEPTORS = 0x1000;
public static final int COMPONENT_USER_INTERCEPTORS = 0x1100;
public static final int SFSB_INIT_METHOD = 0x1200;
public static final int SETUP_CONTEXT = 0x1300;
public static final int TERMINAL_INTERCEPTOR = 0x1400;
private ComponentPostConstruct() {
}
}
public static final class ComponentPreDestroy {
public static final int TCCL_INTERCEPTOR = 0x100;
public static final int CONCURRENT_CONTEXT = 0x180;
public static final int EJB_SESSION_CONTEXT_INTERCEPTOR = 0x200;
public static final int TRANSACTION_INTERCEPTOR = 0x300;
public static final int JNDI_NAMESPACE_INTERCEPTOR = 0x400;
public static final int JPA_SFSB_DESTROY = 0x500;
public static final int INTERCEPTOR_UNINJECTION_INTERCEPTORS = 0x600;
public static final int COMPONENT_UNINJECTION_INTERCEPTORS = 0x700;
public static final int INTERCEPTOR_DESTRUCTION_INTERCEPTORS = 0x800;
public static final int COMPONENT_DESTRUCTION_INTERCEPTORS = 0x900;
public static final int INTERCEPTOR_USER_INTERCEPTORS = 0xA00;
public static final int CDI_INTERCEPTORS = 0xB00;
public static final int COMPONENT_USER_INTERCEPTORS = 0xC00;
public static final int TERMINAL_INTERCEPTOR = 0xD00;
private ComponentPreDestroy() {
}
}
public static final class ComponentPassivation {
public static final int TCCL_INTERCEPTOR = 0x100;
public static final int CONCURRENT_CONTEXT = 0x180;
public static final int EJB_SESSION_CONTEXT_INTERCEPTOR = 0x200;
public static final int TRANSACTION_INTERCEPTOR = 0x300;
public static final int JNDI_NAMESPACE_INTERCEPTOR = 0x400;
public static final int INTERCEPTOR_USER_INTERCEPTORS = 0x500;
public static final int CDI_INTERCEPTORS = 0x600;
public static final int COMPONENT_USER_INTERCEPTORS = 0x700;
public static final int TERMINAL_INTERCEPTOR = 0x800;
private ComponentPassivation() {
}
}
public static final class View {
public static final int CHECKING_INTERCEPTOR = 1;
public static final int TCCL_INTERCEPTOR = 0x003;
public static final int INVOCATION_TYPE = 0x005;
public static final int EE_SETUP = 0x010;
public static final int EJB_IIOP_TRANSACTION = 0x020;
public static final int JNDI_NAMESPACE_INTERCEPTOR = 0x050;
public static final int REMOTE_EXCEPTION_TRANSFORMER = 0x200;
public static final int EJB_EXCEPTION_LOGGING_INTERCEPTOR = 0x210;
public static final int GRACEFUL_SHUTDOWN = 0x218;
public static final int SHUTDOWN_INTERCEPTOR = 0x220;
public static final int INVALID_METHOD_EXCEPTION = 0x230;
public static final int STARTUP_AWAIT_INTERCEPTOR = 0x248;
public static final int SINGLETON_CONTAINER_MANAGED_CONCURRENCY_INTERCEPTOR = 0x240;
// Allows users to specify user application specific "container interceptors" which run before the
// other JBoss specific container interceptors like the security interceptor
public static final int USER_APP_SPECIFIC_CONTAINER_INTERCEPTORS = 0x249;
public static final int SECURITY_CONTEXT = 0x250;
public static final int POLICY_CONTEXT = 0x260;
public static final int SECURITY_ROLES = 0x270;
public static final int EJB_SECURITY_AUTHORIZATION_INTERCEPTOR = 0x300;
public static final int RUN_AS_PRINCIPAL = 0x310;
public static final int EXTRA_PRINCIPAL_ROLES = 0x320;
public static final int RUN_AS_ROLE = 0x330;
public static final int SECURITY_IDENTITY_OUTFLOW = 0x340;
// after security we take note of the invocation
public static final int EJB_WAIT_TIME_INTERCEPTOR = 0x350;
public static final int INVOCATION_CONTEXT_INTERCEPTOR = 0x400;
// should happen before the CMT/BMT interceptors
/**
* @deprecated Remove this field once WFLY-7860 is resolved.
*/
@Deprecated
public static final int REMOTE_TRANSACTION_PROPAGATION_INTERCEPTOR = 0x450;
public static final int CDI_REQUEST_SCOPE = 0x480;
public static final int CMT_TRANSACTION_INTERCEPTOR = 0x500;
public static final int HOME_METHOD_INTERCEPTOR = 0x600;
public static final int ASSOCIATING_INTERCEPTOR = 0x700;
public static final int XTS_INTERCEPTOR = 0x701;
public static final int SESSION_REMOVE_INTERCEPTOR = 0x900;
public static final int COMPONENT_DISPATCHER = 0xA00;
private View() {
}
}
public static final class Client {
public static final int TO_STRING = 0x100;
public static final int NOT_BUSINESS_METHOD_EXCEPTION = 0x110;
public static final int LOCAL_ASYNC_LOG_SAVE = 0x180;
public static final int LOCAL_ASYNC_SECURITY_CONTEXT = 0x190;
public static final int LOCAL_ASYNC_INVOCATION = 0x200;
public static final int LOCAL_ASYNC_LOG_RESTORE = 0x280;
public static final int ASSOCIATING_INTERCEPTOR = 0x300;
public static final int EJB_EQUALS_HASHCODE = 0x400;
public static final int WRITE_REPLACE = 0x500;
public static final int CLIENT_DISPATCHER = 0x600;
private Client() {
}
}
public static final class ClientPreDestroy {
public static final int INSTANCE_DESTROY = 0x100;
public static final int TERMINAL_INTERCEPTOR = 0x200;
private ClientPreDestroy() {
}
}
public static final class ClientPostConstruct {
public static final int INSTANCE_CREATE = 0x100;
public static final int TERMINAL_INTERCEPTOR = 0x200;
private ClientPostConstruct() {
}
}
}