final Object bean = lifecycleProvider.newInstance(beanConfiguration.getManagedBeanClassName()); switch (beanConfiguration.getInitMode()) initializeProperties(facesContext, beanConfiguration.getManagedProperties(), beanConfiguration.getManagedBeanScope(), bean); e.getMessage() + " for bean '" + beanConfiguration.getManagedBeanName() + "' check the configuration to make sure all properties correspond with get/set methods", e); + beanConfiguration.getManagedBeanName() + " is not a Map."); initializeMap(facesContext, beanConfiguration.getMapEntries(), (Map) bean); break; + beanConfiguration.getManagedBeanName() + " is not a List."); initializeList(facesContext, beanConfiguration.getListEntries(), (List) bean); break; throw new IllegalStateException("Unknown managed bean type " + bean.getClass().getName() + " for managed bean " + beanConfiguration.getManagedBeanName() + '.');
String eager = bean.getEager(); if (eager != null && "true".equals(eager)) if (ManagedBeanBuilder.APPLICATION.equals(bean.getManagedBeanScope())) + bean.getManagedBeanName() + " must be application scoped to support eager=true."); if (applicationMap.containsKey(bean.getManagedBeanName())) applicationMap.put(bean.getManagedBeanName(), beanInstance);
private static void validateManagedBean(ManagedBean managedBean, List<String> list){ String className = managedBean.getManagedBeanClassName(); try { ClassUtils.classForName(className); } catch (ClassNotFoundException e) { String msg = "Could not locate class " + className + " for managed bean '" + managedBean.getManagedBeanName() + "'"; list.add(msg); } }
private void putInScope(ManagedBean managedBean, ExternalContext extContext, Object obj) { final String managedBeanName = managedBean.getManagedBeanName(); if (obj == null) { if (log.isDebugEnabled()) log.debug("Variable '" + managedBeanName + "' could not be resolved."); } else { String scopeKey = managedBean.getManagedBeanScope(); // find the scope handler object Scope scope = (Scope) _scopes.get(scopeKey); if (scope == null) { log.error("Managed bean '" + managedBeanName + "' has illegal scope: " + scopeKey); } else { scope.put(extContext, managedBeanName, obj); } } }
final String managedBeanName = managedBean.getManagedBeanName(); final String scopeKey = managedBean.getManagedBeanScope(); else if (managedBean.isManagedBeanScopeValueExpression()) Object customScope = managedBean.getManagedBeanScopeValueExpression(facesContext) .getValue(facesContext.getELContext());
.getLifecycleProviderFactory( externalContext).getLifecycleProvider(externalContext); final Object bean = lifecycleProvider.newInstance(beanConfiguration.getManagedBeanClassName()); switch (beanConfiguration.getInitMode()) e.getMessage() + " for bean '" + beanConfiguration.getManagedBeanName() + "' check the configuration to make sure all properties " + "correspond with get/set methods", e); + beanConfiguration.getManagedBeanName() + " is not a Map."); initializeMap(facesContext, beanConfiguration.getMapEntries(), (Map<Object, Object>) bean); break; + beanConfiguration.getManagedBeanName() + " is not a List."); initializeList(facesContext, beanConfiguration.getListEntries(), (List<Object>) bean); break; throw new IllegalStateException("Unknown managed bean type " + bean.getClass().getName() + " for managed bean " + beanConfiguration.getManagedBeanName() + '.');
if (beanConfiguration.isManagedBeanScopeValueExpression()) .getManagedBeanScopeValueExpression(facesContext) .getExpressionString()); targetScope = beanConfiguration.getManagedBeanScope(); if (targetScope == null)
private static FeatureDescriptor makeDescriptor(final String beanName, final ManagedBean managedBean) { final FeatureDescriptor fd = new FeatureDescriptor(); fd.setValue(ELResolver.RESOLVABLE_AT_DESIGN_TIME, Boolean.TRUE); fd.setValue(ELResolver.TYPE, managedBean.getManagedBeanClass()); fd.setName(beanName); fd.setDisplayName(beanName); fd.setShortDescription(managedBean.getDescription()); fd.setExpert(false); fd.setHidden(false); fd.setPreferred(true); return fd; }
ELContext elContext = facesContext.getELContext(); for (ManagedProperty property : beanConfiguration.getManagedProperties()) beanConfiguration.getManagedBeanScope());
private Object createManagedBean(ManagedBean managedBean, FacesContext facesContext) throws ELException { ExternalContext extContext = facesContext.getExternalContext(); Map requestMap = extContext.getRequestMap(); // check for cyclic references List beansUnderConstruction = (List)requestMap.get(BEANS_UNDER_CONSTRUCTION); if (beansUnderConstruction == null) { beansUnderConstruction = new ArrayList(); requestMap.put(BEANS_UNDER_CONSTRUCTION, beansUnderConstruction); } String managedBeanName = managedBean.getManagedBeanName(); if (beansUnderConstruction.contains(managedBeanName)) { throw new ELException( "Detected cyclic reference to managedBean " + managedBeanName); } beansUnderConstruction.add(managedBeanName); Object obj = null; try { obj = beanBuilder.buildManagedBean(facesContext, managedBean); } finally { beansUnderConstruction.remove(managedBeanName); } putInScope(managedBean, extContext, obj); return obj; }
private void removePurgedBeansFromSessionAndApplication(RuntimeConfig runtimeConfig) { Map oldManagedBeans = runtimeConfig.getManagedBeansNotReaddedAfterPurge(); if(oldManagedBeans!=null) { Iterator it=oldManagedBeans.entrySet().iterator(); while(it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); ManagedBean bean = (ManagedBean) entry.getValue(); String scope = bean.getManagedBeanScope(); if(scope!=null && scope.equalsIgnoreCase("session")) { _externalContext.getSessionMap().remove(entry.getKey()); } else if(scope!=null && scope.equalsIgnoreCase("application")) { _externalContext.getApplicationMap().remove(entry.getKey()); } } } runtimeConfig.resetManagedBeansNotReaddedAfterPurge(); }
@Override public Object getValue(ELContext ctx, Object base, Object property) throws NullPointerException, PropertyNotFoundException, ELException { if (base != null || !(property instanceof String)) return null; FacesContext fctx = (FacesContext)ctx.getContext(FacesContext.class); if (fctx == null) return null; ExternalContext ectx = fctx.getExternalContext(); if (ectx == null || ectx.getRequestMap().containsKey(property) || ectx.getSessionMap().containsKey(property) || ectx.getApplicationMap().containsKey(property)) return null; ManagedBean managedBean = runtimeConfig(ctx).getManagedBean((String)property); return managedBean == null ? null : getValue(ctx, ectx, managedBean.getManagedBeanClass()); }
protected ClassFinder createMyFacesClassFinder(List<FacesConfig> facesConfigs, Bundle bundle) throws DeploymentException { List<Class<?>> managedBeanClasses = new ArrayList<Class<?>>(); for (FacesConfig facesConfig : facesConfigs) { for (ManagedBean managedBean : facesConfig.getManagedBeans()) { String className = managedBean.getManagedBeanClassName().trim(); Class<?> clas; try { clas = bundle.loadClass(className); while (clas != null) { managedBeanClasses.add(clas); clas = clas.getSuperclass(); } } catch (ClassNotFoundException e) { log.warn("MyFacesModuleBuilderExtension: Could not load managed bean class: " + className); } } } return new ClassFinder(managedBeanClasses); }
LifecycleProviderFactory.getLifecycleProviderFactory(facesContext.getExternalContext()).getLifecycleProvider(facesContext.getExternalContext()); final Object bean = lifecycleProvider.newInstance(beanConfiguration.getManagedBeanClassName()); switch (beanConfiguration.getInitMode()) e.getMessage() + " for bean '" + beanConfiguration.getManagedBeanName() + "' check the configuration to make sure all properties correspond with get/set methods", e); + beanConfiguration.getManagedBeanName() + " is not a Map."); initializeMap(facesContext, beanConfiguration.getMapEntries(), (Map<Object, Object>) bean); break; + beanConfiguration.getManagedBeanName() + " is not a List."); initializeList(facesContext, beanConfiguration.getListEntries(), (List<Object>) bean); break; throw new IllegalStateException("Unknown managed bean type " + bean.getClass().getName() + " for managed bean " + beanConfiguration.getManagedBeanName() + '.');
final String managedBeanName = managedBean.getManagedBeanName(); final String scopeKey = managedBean.getManagedBeanScope(); else if (managedBean.isManagedBeanScopeValueExpression()) .getManagedBeanScopeValueExpression(facesContext) .getValue(facesContext.getELContext()); if (customScope instanceof Map)
if (mbc.isManagedBeanScopeValueExpression()) String scopeExpression = mbc.getManagedBeanScopeValueExpression(facesContext).getExpressionString(); return getNarrowestScope(facesContext, scopeExpression); return mbc.getManagedBeanScope();
private static void validateManagedBean(ManagedBean managedBean, List<String> list) { String className = managedBean.getManagedBeanClassName(); try { ClassUtils.classForName(className); } catch (ClassNotFoundException e) { String msg = "Could not locate class " + className + " for managed bean '" + managedBean.getManagedBeanName() + "'"; list.add(msg); } } }
private FeatureDescriptor makeDescriptor(String beanName, ManagedBean managedBean) { FeatureDescriptor fd = new FeatureDescriptor(); fd.setValue(ELResolver.RESOLVABLE_AT_DESIGN_TIME, Boolean.TRUE); fd.setValue(ELResolver.TYPE, managedBean.getManagedBeanClass()); fd.setName(beanName); fd.setDisplayName(beanName); fd.setShortDescription(managedBean.getDescription()); fd.setExpert(false); fd.setHidden(false); fd.setPreferred(true); return fd; }
ELContext elContext = facesContext.getELContext(); for (ManagedProperty property : beanConfiguration.getManagedProperties()) beanConfiguration.getManagedBeanScope());
@SuppressWarnings("unchecked") private Object createManagedBean(final ManagedBean managedBean, final FacesContext facesContext) throws ELException { final ExternalContext extContext = facesContext.getExternalContext(); final Map<Object, Object> facesContextMap = facesContext.getAttributes(); final String managedBeanName = managedBean.getManagedBeanName(); // check for cyclic references List<String> beansUnderConstruction = (List<String>) facesContextMap.get(BEANS_UNDER_CONSTRUCTION); if (beansUnderConstruction == null) { beansUnderConstruction = new ArrayList<String>(); facesContextMap.put(BEANS_UNDER_CONSTRUCTION, beansUnderConstruction); } else if (beansUnderConstruction.contains(managedBeanName)) { throw new ELException("Detected cyclic reference to managedBean " + managedBeanName); } beansUnderConstruction.add(managedBeanName); Object obj = null; try { obj = beanBuilder.buildManagedBean(facesContext, managedBean); } finally { beansUnderConstruction.remove(managedBeanName); } putInScope(managedBean, facesContext, extContext, obj); return obj; }