Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  * JBoss, Home of Professional Open Source
  * Copyright 2008, 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
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * See the License for the specific language governing permissions and
 * limitations under the License.
package org.jboss.weld.ejb;
Interceptor for ensuring the request context is active during requests to EJBs.

Normally, a servlet will start the request context, however in non-servlet requests (e.g. MDB, async, timeout) the contexts may need starting.

The Application context is active for duration of the deployment

Pete Muir
Jozef Hartinger
public abstract class AbstractEJBRequestScopeActivationInterceptor implements Serializable {
    private static final long serialVersionUID = 7327757031821596782L;
    public Object aroundInvoke(InvocationContext invocationthrows Exception {
        if (isRequestContextActive()) {
            return invocation.proceed();
        } else {
            EjbRequestContext requestContext = getEjbRequestContext();
            try {
                try {
                    // An event with qualifier @Initialized(RequestScoped.class) is fired when the request context is initialized
                    getBeanManager().getGlobalLenientObserverNotifier().fireEvent(new Object(), .);
                    return invocation.proceed();
                } finally {
            } finally {
                // An event with qualifier @Destroyed(RequestScoped.class) when the request context is destroyed
    protected boolean isRequestContextActive() {
        for (RequestContext requestContext : getBeanManager().instance().select(RequestContext.class)) {
            if (requestContext.isActive()) {
                return true;
        return false;
    protected EjbRequestContext getEjbRequestContext() {
        return getBeanManager().instance().select(EjbRequestContext.class).get();
    protected abstract BeanManagerImpl getBeanManager();
New to GrepCode? Check out our FAQ X