private void inject(Object instance, ManagedBeanDescriptor managedBeanDesc) throws Exception { BundleDescriptor bundle = managedBeanDesc.getBundle(); if( (bundle instanceof EjbBundleDescriptor) || (bundle instanceof ApplicationClientDescriptor) ) { injectionMgr.injectInstance(instance, managedBeanDesc.getGlobalJndiName(), false); } else { // Inject instances, but use injection invoker for PostConstruct injectionMgr.injectInstance(instance, (JndiNameEnvironment) bundle, false); } }
public void addBeanInstanceInfo(Object o) { addBeanInstanceInfo(o, null); }
public void addManagedBean(ManagedBeanDescriptor desc) { if (!hasManagedBeanByBeanClass(desc.getBeanClassName())) { //check for uniqueness of ManagedBean name, if defined if (desc.isNamed()) { for (ManagedBeanDescriptor managedBeanDescriptor : managedBeans) { if (managedBeanDescriptor.isNamed() && desc.getName().equals(managedBeanDescriptor.getName())) { //duplicate ManagedBean found throw new RuntimeException(localStrings.getLocalString( "entreprise.deployment.exceptionduplicatemanagedbeandefinition", "ManagedBean [{0}] cannot have same name [{1}] already used by " + "another ManagedBean [{2}]", new Object[]{ desc.getBeanClassName(), managedBeanDescriptor.getName(), managedBeanDescriptor.getBeanClassName() })); } } } managedBeans.add(desc); desc.setBundle(this); } }
public void addManagedBean(ManagedBeanDescriptor desc) { if (!hasManagedBeanByBeanClass(desc.getBeanClassName())) { managedBeans.add(desc); desc.setBundle(this); } }
next.validate(); Set<String> interceptorClasses = next.getAllInterceptorClasses(); Class targetClass = bundle.getClassLoader().loadClass(next.getBeanClassName()); InterceptorInfo interceptorInfo = new InterceptorInfo(); interceptorInfo.setTargetClass(targetClass); interceptorInfo.setInterceptorClassNames(interceptorClasses); interceptorInfo.setPostConstructInterceptors (next.getCallbackInterceptors(LifecycleCallbackDescriptor.CallbackType.POST_CONSTRUCT)); interceptorInfo.setPreDestroyInterceptors (next.getCallbackInterceptors(LifecycleCallbackDescriptor.CallbackType.PRE_DESTROY)); if( next.hasAroundInvokeMethod() ) { interceptorInfo.setHasTargetClassAroundInvoke(true); interceptorChains.put(m, next.getAroundInvokeInterceptors(m) ); next.setInterceptorBuilder(builder); String jndiName = next.getGlobalJndiName(); ManagedBeanNamingProxy namingProxy = new ManagedBeanNamingProxy(next, habitat); throw new RuntimeException("Error binding ManagedBean " + next.getBeanClassName() + " with name = " + next.getName(), e);
for(Object instance : next.getBeanInstances()) { next.getSupportingInfoForBeanInstance(instance); _logger.log(Level.FINE, "Managed bean " + next.getBeanClassName() + " PreDestroy", e); compEnvManager.unbindFromComponentNamespace(next); } catch(javax.naming.NamingException ne) { _logger.log(Level.FINE, "Managed bean " + next.getBeanClassName() + " unbind", ne); String jndiName = next.getGlobalJndiName(); } catch(javax.naming.NamingException ne) { _logger.log(Level.FINE, "Error unpubishing managed bean " + next.getBeanClassName() + " with jndi name " + jndiName, ne); next.clearAllBeanInstanceInfo();
ManagedBeanDescriptor managedBeanDesc = new ManagedBeanDescriptor(); managedBeanDesc.setName(logicalName); managedBeanDesc.setBeanClassName(managedBeanClass.getName()); desc.setLifecycleCallbackClass(nextIntClass.getName()); desc.setLifecycleCallbackMethod(managedBeanAroundInvoke.getName()); managedBeanDesc.addAroundInvokeDescriptor(desc); if( excludeClassInterceptors ) { MethodDescriptor mDesc = new MethodDescriptor(m); managedBeanDesc.setMethodLevelInterceptorChain(mDesc, new LinkedList<InterceptorDescriptor>()); managedBeanDesc.setClassInterceptorChain(classInterceptorChain); managedBeanDesc.setMethodLevelInterceptorChain(mDesc, methodInterceptorChain);
@Override public void accept(ManagedBeanDescriptor managedBean) { this.bundleDescriptor = managedBean.getBundle(); this.application = bundleDescriptor.getApplication(); for (Iterator itr = managedBean.getEjbReferenceDescriptors().iterator(); itr.hasNext();) { EjbReference aRef = (EjbReference) itr.next(); accept(aRef); } for (Iterator it = managedBean.getResourceReferenceDescriptors().iterator(); it.hasNext();) { ResourceReferenceDescriptor next = (ResourceReferenceDescriptor) it.next(); accept(next); } for (Iterator it = managedBean.getResourceEnvReferenceDescriptors().iterator(); it.hasNext();) { ResourceEnvReferenceDescriptor next = (ResourceEnvReferenceDescriptor) it.next(); accept(next); } for (Iterator it = managedBean.getMessageDestinationReferenceDescriptors().iterator(); it.hasNext();) { MessageDestinationReferencer next = (MessageDestinationReferencer) it.next(); accept(next); } Set serviceRefs = managedBean.getServiceReferenceDescriptors(); for (Iterator itr = serviceRefs.iterator(); itr.hasNext();) { accept((ServiceReferenceDescriptor) itr.next()); } }
bundleDescriptor = getBundle(); } else { bundleDescriptor = desc.getBundleDescriptor(); desc.getInterceptorBuilder(); desc.addBeanInstanceInfo(managedBean, interceptorInvoker);
public void accept(JmsDestinationReferenceDescriptor jmsDestRef) { if (jmsDestRef.getJndiName() == null || jmsDestRef.getJndiName().length() == 0) { Map<String, ManagedBeanDescriptor> managedBeanMap = getManagedBeanMap(); String refType = jmsDestRef.getRefType(); if( managedBeanMap.containsKey(refType) ) { ManagedBeanDescriptor desc = managedBeanMap.get(refType); // In app-client, keep lookup local to JVM so it doesn't need to access // server's global JNDI namespace for managed bean. String jndiName = ( bundleDescriptor instanceof ApplicationClientDescriptor ) ? desc.getAppJndiName() : desc.getGlobalJndiName(); jmsDestRef.setJndiName(jndiName); jmsDestRef.setIsManagedBean(true); jmsDestRef.setManagedBeanDescriptor(desc); } } computeRuntimeDefault(jmsDestRef); }
/** * Return the ordered list of interceptor info for a particular * callback event type. This list *does* include the info * on any bean class callback. If present, this would always be the * last element in the list because of the precedence defined by the spec. */ public List<InterceptorDescriptor> getCallbackInterceptors(LifecycleCallbackDescriptor.CallbackType type) { LinkedList<InterceptorDescriptor> callbackInterceptors = new LinkedList<InterceptorDescriptor>(); for (InterceptorDescriptor next : classInterceptorChain) { if (next.getCallbackDescriptors(type).size() > 0) { callbackInterceptors.add(next); } } if (this.hasCallbackDescriptor(type)) { InterceptorDescriptor beanClassCallbackInfo = new InterceptorDescriptor(); beanClassCallbackInfo.setFromBeanClass(true); beanClassCallbackInfo.addCallbackDescriptors(type, this.getCallbackDescriptors(type)); beanClassCallbackInfo.setInterceptorClassName(getBeanClassName()); callbackInterceptors.add(beanClassCallbackInfo); } return callbackInterceptors; }
desc.getSupportingInfoForBeanInstance(managedBeanInstance); _logger.log(Level.FINE, "Managed bean " + desc.getBeanClassName() + " PreDestroy", e); desc.clearBeanInstanceInfo(managedBeanInstance);
private void parseManagedBeans(AppResources appResources) { for (BundleDescriptor bd : application.getBundleDescriptors()) { for (ManagedBeanDescriptor managedBean : bd.getManagedBeans()) { appResources.storeInNamespace(managedBean.getGlobalJndiName(), (JndiNameEnvironment)bd); } } }
public ManagedBeanDescriptor getManagedBeanByBeanClass(String beanClassName) { ManagedBeanDescriptor match = null; for(ManagedBeanDescriptor next : managedBeans) { if( beanClassName.equals(next.getBeanClassName()) ) { match = next; break; } } return match; }
public void accept(ManagedBeanDescriptor descriptor) { this.bundleDescriptor = descriptor.getBundle(); }
if (hasAroundInvokeMethod()) { interceptorInfo.addAroundInvokeDescriptors(getAroundInvokeDescriptors()); interceptorInfo.setInterceptorClassName(beanClassName);
value = namingUtils.createLazyNamingObjectFactory(name, next.getJndiName(), false); } else { value = namingUtils.createLazyNamingObjectFactory(name, managedBeanDesc.getAppJndiName(), false);
Set<String> interceptorClasses = next.getAllInterceptorClasses(); Class targetClass = bundle.getClassLoader().loadClass(next.getBeanClassName()); InterceptorInfo interceptorInfo = new InterceptorInfo(); interceptorInfo.setTargetClass(targetClass); interceptorInfo.setInterceptorClassNames(interceptorClasses); interceptorInfo.setAroundConstructInterceptors (next.getAroundConstructCallbackInterceptors(targetClass, getConstructor(targetClass, isCDIBundle))); interceptorInfo.setPostConstructInterceptors (next.getCallbackInterceptors(LifecycleCallbackDescriptor.CallbackType.POST_CONSTRUCT)); interceptorInfo.setPreDestroyInterceptors (next.getCallbackInterceptors(LifecycleCallbackDescriptor.CallbackType.PRE_DESTROY)); if( next.hasAroundInvokeMethod() ) { interceptorInfo.setHasTargetClassAroundInvoke(true); interceptorChains.put(m, next.getAroundInvokeInterceptors(m) ); next.setInterceptorBuilder(builder); String jndiName = next.getGlobalJndiName(); ManagedBeanNamingProxy namingProxy = new ManagedBeanNamingProxy(next, habitat); throw new RuntimeException("Error binding ManagedBean " + next.getBeanClassName() + " with name = " + next.getName(), e);
for(Object instance : next.getBeanInstances()) { next.getSupportingInfoForBeanInstance(instance); _logger.log(Level.FINE, "Managed bean " + next.getBeanClassName() + " PreDestroy", e); compEnvManager.unbindFromComponentNamespace(next); } catch(javax.naming.NamingException ne) { _logger.log(Level.FINE, "Managed bean " + next.getBeanClassName() + " unbind", ne); String jndiName = next.getGlobalJndiName(); } catch(javax.naming.NamingException ne) { _logger.log(Level.FINE, "Error unpubishing managed bean " + next.getBeanClassName() + " with jndi name " + jndiName, ne); next.clearAllBeanInstanceInfo();
ManagedBeanDescriptor managedBeanDesc = new ManagedBeanDescriptor(); managedBeanDesc.setName(logicalName); managedBeanDesc.setBeanClassName(managedBeanClass.getName()); desc.setLifecycleCallbackClass(nextIntClass.getName()); desc.setLifecycleCallbackMethod(managedBeanAroundInvoke.getName()); managedBeanDesc.addAroundInvokeDescriptor(desc); managedBeanDesc.setClassInterceptorChain(classInterceptorChain); managedBeanDesc.setMethodLevelInterceptorChain(mDesc, methodInterceptorChain);