}
// Env-Entry
if (isEnvEntry(typeInterface)) {
JndiType type = JAVA_COMP_ENV;
// Lookup name exists ?
if (lookupName == null) {
lookupName = jAnnotationResource.getName();
}
if (lookupName.startsWith("java:")) {
type = JAVA;
}
callMethodJndiEnv(lookupName, typeInterface, mv, methodMetaData,
this.classAnnotationMetadata.getClassName(), type);
} else if (USERTRANSACTION_ITF.equals(itfName)) {
callMethodJndiEnv("UserTransaction", typeInterface, mv, methodMetaData,
this.classAnnotationMetadata.getClassName(), JAVA_COMP);
callBindLookupJndiRef(jAnnotationResource.getName(), "java:comp/UserTransaction", mv);
} else if (TIMERSERVICE_ITF.equals(itfName)) {
// add call to : setterMethod(getEasyBeansContext().getInternalTimerService());
mv.visitVarInsn(ALOAD, 0);
addCallGetEasyBeansContext(mv, null);
mv.visitMethodInsn(INVOKEINTERFACE, "org/ow2/easybeans/api/container/EZBEJBContext",
"getInternalTimerService", "()Ljavax/ejb/TimerService;");
mv.visitMethodInsn(INVOKEVIRTUAL, this.classAnnotationMetadata.getClassName(), methodMetaData.getMethodName(),
"(Ljavax/ejb/TimerService;)V");
callBindLookupJndiRef(jAnnotationResource.getName(), "java:comp/TimerService", mv);
} else if (SESSION_CONTEXT.equals(itfName)) {
// add call to : setterMethod(getEasyBeansContext());
mv.visitVarInsn(ALOAD, 0);
addCallGetEasyBeansContext(mv, "javax/ejb/SessionContext");
mv.visitMethodInsn(INVOKEVIRTUAL, this.classAnnotationMetadata.getClassName(), methodMetaData.getMethodName(),
"(Ljavax/ejb/SessionContext;)V");
// Define the type (if missing)
jAnnotationResource.setType(SESSION_CONTEXT);
bindResource(jAnnotationResource, mv);
} else if (MESSAGEDRIVEN_CONTEXT.equals(itfName)) {
// add call to : setterMethod(getEasyBeansContext());
mv.visitVarInsn(ALOAD, 0);
addCallGetEasyBeansContext(mv, "javax/ejb/MessageDrivenContext");
mv.visitMethodInsn(INVOKEVIRTUAL, this.classAnnotationMetadata.getClassName(), methodMetaData.getMethodName(),
"(Ljavax/ejb/MessageDrivenContext;)V");
// Define the type (if missing)
jAnnotationResource.setType(MESSAGEDRIVEN_CONTEXT);
bindResource(jAnnotationResource, mv);
} else if (EJBCONTEXT.equals(itfName)) {
// add call to : setterMethod(getEasyBeansContext());
mv.visitVarInsn(ALOAD, 0);
addCallGetEasyBeansContext(mv, "javax/ejb/EJBContext");
mv.visitMethodInsn(INVOKEVIRTUAL, this.classAnnotationMetadata.getClassName(), methodMetaData.getMethodName(),
"(Ljavax/ejb/EJBContext;)V");
// Define the type (if missing)
jAnnotationResource.setType(EJBCONTEXT);
bindResource(jAnnotationResource, mv);
} else if (ORB_ITF.equals(itfName)) {
callMethodJndiEnv("ORB", typeInterface, mv, methodMetaData,
this.classAnnotationMetadata.getClassName(), JAVA_COMP);
callBindLookupJndiRef(jAnnotationResource.getName(), "java:comp/ORB", mv);
} else if (URL_ITF.equals(itfName)) {
// Bind object in java:comp/env
callBindLookupURLRef(jAnnotationResource.getName(), mappedName, mv);
// Get JNDI value from registry and call setter method
callMethodJndiEnv(jAnnotationResource.getName(), typeInterface, mv, methodMetaData,
this.classAnnotationMetadata.getClassName(), JAVA_COMP_ENV);
} else if (lookupName != null && !lookupName.equals("")) {
JndiType type = REGISTRY;
// Lookup name ?
if (lookupName.startsWith("java:")) {
type = JAVA;
}
callMethodJndiEnv(lookupName, typeInterface, mv, methodMetaData,