Package cn.agrael.struts.plugin.ejb3

Source Code of cn.agrael.struts.plugin.ejb3.EJBObjectFactory

package cn.agrael.struts.plugin.ejb3;

import java.util.Map;

import org.apache.struts2.impl.StrutsObjectFactory;

import com.opensymphony.xwork2.config.ConfigurationException;
import com.opensymphony.xwork2.config.entities.InterceptorConfig;
import com.opensymphony.xwork2.interceptor.Interceptor;

/**
* 基于 EJB3.0 功能的 ObjectFactory 实现。
*
* @author <a href="mailto:agraellee@gmail.com">Agrael·Lee</a>
*
*/
public class EJBObjectFactory extends StrutsObjectFactory {

  /** 版本号 */
  private static final long serialVersionUID = 4965387125699005124L;

  @SuppressWarnings("unchecked")
  @Override
  public Interceptor buildInterceptor(InterceptorConfig interceptorConfig, Map refParams) {
    Interceptor interceptor = super.buildInterceptor(interceptorConfig, refParams);
    try {
      // 执行 EJB 的注解
      BeanEJBAnnotation beanEJBAnnotation = StrutsEJBUtils.executeEJBInjectAnnotation(interceptor);
      if (!beanEJBAnnotation.isEmpty()) {
        // 如果注解信息不为空,模拟生命周期方法
        StrutsEJBUtils.simulation(interceptor, beanEJBAnnotation);
        // 则创建代理执行
        interceptor = StrutsEJBUtils.createInterceptorsAnnotationProxy(interceptor, beanEJBAnnotation);
      }
    } catch (Exception e) {
      throw new ConfigurationException(e);
    }
    return interceptor;
  }

}
TOP

Related Classes of cn.agrael.struts.plugin.ejb3.EJBObjectFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.