1 29 30 package com.caucho.ejb.cfg; 31 32 import com.caucho.bytecode.JClass; 33 import com.caucho.bytecode.JMethod; 34 import com.caucho.config.ConfigException; 35 import com.caucho.log.Log; 36 import com.caucho.util.L10N; 37 38 import javax.ejb.CreateException ; 39 import java.util.logging.Logger ; 40 41 44 public class EjbSessionHomeView extends EjbHomeView { 45 private static final Logger log = Log.open(EjbSessionHomeView.class); 46 private static final L10N L = new L10N(EjbSessionHomeView.class); 47 48 51 public EjbSessionHomeView(EjbBean bean, JClass apiClass, String prefix) 52 throws ConfigException 53 { 54 super(bean, apiClass, prefix); 55 } 56 57 60 protected EjbMethod introspectEJBMethod(JMethod method) 61 throws ConfigException 62 { 63 JClass apiClass = getApiClass(); 64 String methodName = method.getName(); 65 JClass []paramTypes = method.getParameterTypes(); 66 67 if (methodName.startsWith("ejbCreate")) { 68 String createName = "c" + methodName.substring(4); 69 70 JMethod apiMethod = EjbBean.getMethod(apiClass, 71 createName, 72 paramTypes); 73 74 78 if (apiMethod == null) { 79 log.config(errorMissingMethod(apiClass, createName, method).getMessage()); 80 return null; 81 } 82 83 validateException(apiMethod, CreateException .class); 84 85 return new EjbCreateMethod(this, apiMethod, method); 86 } 87 88 if (! methodName.startsWith("ejb")) 89 return null; 90 else if (methodName.equals("ejbRemove")) 91 return null; 92 else if (methodName.startsWith("ejbCreate")) 93 return null; 94 else if (methodName.startsWith("ejbPostCreate")) 95 return null; 96 else if (methodName.startsWith("ejbActivate")) 97 return null; 98 else if (methodName.startsWith("ejbPassivate")) 99 return null; 100 else if (methodName.startsWith("ejbDestroy")) 102 return null; 103 else 104 throw error(L.l("{0}: '{1}' must not start with 'ejb'. The EJB spec reserves all methods starting with ejb.", 105 method.getDeclaringClass().getName(), 106 getFullMethodName(method))); 107 } 108 109 113 protected EjbMethod introspectApiMethod(JMethod apiMethod) 114 throws ConfigException 115 { 116 String apiName = apiMethod.getName(); 117 118 if (apiName.equals("create")) 119 throw errorMissingMethod(getImplClass(), "ejbCreate", apiMethod); 120 else 121 return super.introspectApiMethod(apiMethod); 122 } 123 } 124 | Popular Tags |