@Override public void addELResolver(ELResolver resolver) { if (FacesContext.getCurrentInstance() != null) { throw new IllegalStateException("It is illegal to add a resolver after the first request is processed"); } if (resolver != null) { _runtimeConfig.addApplicationElResolver(resolver); } }
public static List<String> validate(ExternalContext ctx) { RuntimeConfig runtimeConfig = RuntimeConfig.getCurrentInstance(ctx); Map<String, ManagedBean> managedBeansMap = runtimeConfig.getManagedBeans(); Collection<? extends ManagedBean> managedBeans = null; if (managedBeansMap != null) { managedBeans = managedBeansMap.values(); } Collection<? extends NavigationRule> navRules = runtimeConfig.getNavigationRules(); return validate(managedBeans, navRules, ctx); }
@Override public final ExpressionFactory getExpressionFactory() { return _runtimeConfig.getExpressionFactory(); }
/** * Returns a List of all ELResolvers from the faces-config. * @return */ private List<ELResolver> _getFacesConfigElResolvers() { if (_facesConfigResolvers == null) { ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext(); RuntimeConfig runtimeConfig = RuntimeConfig.getCurrentInstance(externalContext); _facesConfigResolvers = runtimeConfig.getFacesConfigElResolvers(); } return _facesConfigResolvers; }
public void restoreState(FacesContext context, Object state) { Object[] values = (Object[]) state; if (values[0] instanceof String) { taglibURI = (String) values[0]; } else if (values[0] instanceof Integer) { RuntimeConfig runtimeConfig = RuntimeConfig.getCurrentInstance( context.getExternalContext()); taglibURI = runtimeConfig.getNamespaceById().get((Integer)values[0]); } else if (values[0] instanceof Object[]) { Object[] def = (Object[])values[0]; String ns = ( ((Integer)def[0]).intValue() == 0) ? CompositeResourceLibrary.NAMESPACE_PREFIX : CompositeResourceLibrary.ALIAS_NAMESPACE_PREFIX; taglibURI = ns + (String)(((Object[])values[0])[1]); } tagName = (String)values[1]; attributes = (Map<String,Object>) values[2]; baseKey = (String)values[3]; }
RuntimeConfig runtimeConfig = RuntimeConfig.getCurrentInstance(_externalContext); FacesConfigData dispenser = getDispenser(); List<String> knownNamespaces = new ArrayList<String>(); runtimeConfig.addComponentTagDeclaration(declaration); if (declaration.getNamespace() != null) if (log.isLoggable(Level.WARNING) && runtimeConfig.getManagedBean(bean.getManagedBeanName()) != null) runtimeConfig.addManagedBean(bean.getManagedBeanName(), bean); runtimeConfig.addNavigationRule(rule); runtimeConfig.addConverterConfiguration(converterClassName, _dispenser.getConverterConfiguration(converterClassName)); runtimeConfig.addResourceBundle(bundle); runtimeConfig.addFacesConfigElResolver(elResolver); runtimeConfig.addApplicationSearchExpressionResolver(searchKeywordResolver); runtimeConfig.setFacesVersion(dispenser.getFacesVersion()); runtimeConfig.setNamedEventManager(new NamedEventManager()); runtimeConfig.getNamedEventManager().addNamedEvent(event.getShortName(), clazz); (Class<Comparator<ELResolver>>) ClassUtils.classForName(elResolverComparatorClass);
private void configureRuntimeConfig() RuntimeConfig runtimeConfig = RuntimeConfig.getCurrentInstance(_externalContext); if (log.isLoggable(Level.WARNING) && runtimeConfig.getManagedBean(bean.getManagedBeanName()) != null) runtimeConfig.addManagedBean(bean.getManagedBeanName(), bean); runtimeConfig.addNavigationRule(rule); runtimeConfig.addConverterConfiguration(converterClassName, _dispenser.getConverterConfiguration(converterClassName)); runtimeConfig.addResourceBundle(bundle); runtimeConfig.addFacesConfigElResolver((ELResolver)ClassUtils.newInstance(className, ELResolver.class)); runtimeConfig.setFacesVersion (dispenser.getFacesVersion()); runtimeConfig.setNamedEventManager(new NamedEventManager()); runtimeConfig.getNamedEventManager().addNamedEvent(event.getShortName(), clazz); } catch (ClassNotFoundException e) { log.log(Level.SEVERE, "Named event could not be initialized, reason:",e); runtimeConfig.addFaceletProcessingConfiguration(faceletsProcessing.getFileExtension(), faceletsProcessing);
if (_config.getFacesConfigElResolvers() != null) for (ELResolver resolver : _config.getFacesConfigElResolvers()) if (_config.getVariableResolver() != null) resolvers.add(createELResolver(_config.getVariableResolver())); else if (_config.getVariableResolverChainHead() != null) resolvers.add(createELResolver(_config.getVariableResolverChainHead())); if (_config.getPropertyResolver() != null) resolvers.add(createELResolver(_config.getPropertyResolver())); else if (_config.getPropertyResolverChainHead() != null) resolvers.add(createELResolver(_config.getPropertyResolverChainHead())); if (_config.getApplicationElResolvers() != null) for (ELResolver resolver : _config.getApplicationElResolvers())
private void configureRuntimeConfig() { RuntimeConfig runtimeConfig = RuntimeConfig.getCurrentInstance(_externalContext); FacesConfigDispenser dispenser = getDispenser(); for (Iterator iterator = dispenser.getManagedBeans(); iterator.hasNext();) { ManagedBean bean = (ManagedBean) iterator.next(); if (log.isWarnEnabled() && runtimeConfig.getManagedBean(bean.getManagedBeanName()) != null) log.warn("More than one managed bean w/ the name of '" + bean.getManagedBeanName() + "' - only keeping the last "); runtimeConfig.addManagedBean(bean.getManagedBeanName(), bean); } removePurgedBeansFromSessionAndApplication(runtimeConfig); for (Iterator iterator = dispenser.getNavigationRules(); iterator.hasNext();) { NavigationRule rule = (NavigationRule) iterator.next(); runtimeConfig.addNavigationRule(rule); } for (Iterator<ResourceBundle> iter = dispenser.getResourceBundles(); iter.hasNext();) { runtimeConfig.addResourceBundle(iter.next()); } for (Iterator<String> iter = dispenser.getElResolvers(); iter.hasNext();) { runtimeConfig.addFacesConfigElResolver((ELResolver) ClassUtils.newInstance(iter.next(), ELResolver.class)); } }
RuntimeConfig runtimeConfig = RuntimeConfig.getCurrentInstance(externalContext); if (_navigationCases == null || runtimeConfig.isNavigationRulesChanged()) if (_navigationCases == null || runtimeConfig.isNavigationRulesChanged()) Collection<? extends NavigationRule> rules = runtimeConfig.getNavigationRules(); int rulesSize = rules.size(); _wildcardKeys = wildcardKeys; runtimeConfig.setNavigationRulesChanged(false);
protected RuntimeConfig getRuntimeConfig() { if (_runtimeConfig == null) { _runtimeConfig = RuntimeConfig.getCurrentInstance(_externalContext); } return _runtimeConfig; }
private void purgeConfiguration() throws NoSuchMethodException, IllegalAccessException, InvocationTargetException { Method purgeMethod; Class[] emptyParameterList = new Class[]{}; ApplicationFactory applicationFactory = (ApplicationFactory) FactoryFinder.getFactory(FactoryFinder.APPLICATION_FACTORY); purgeMethod = applicationFactory.getClass().getMethod("purgeApplication", emptyParameterList); purgeMethod.invoke(applicationFactory, emptyParameterList); RenderKitFactory renderKitFactory = (RenderKitFactory) FactoryFinder.getFactory(FactoryFinder.RENDER_KIT_FACTORY); purgeMethod = renderKitFactory.getClass().getMethod("purgeRenderKit", emptyParameterList); purgeMethod.invoke(renderKitFactory, emptyParameterList); RuntimeConfig.getCurrentInstance(_externalContext).purge(); LifecycleFactory lifecycleFactory = (LifecycleFactory) FactoryFinder.getFactory(FactoryFinder.LIFECYCLE_FACTORY); purgeMethod = lifecycleFactory.getClass().getMethod("purgeLifecycle", emptyParameterList); purgeMethod.invoke(lifecycleFactory, emptyParameterList); // factories and serial factory need not be purged... }
/** * Configures this JSF application. It's required that every * FacesInitializer (i.e. every subclass) calls this method during * initialization. * * @param servletContext the current ServletContext * @param externalContext the current ExternalContext * @param expressionFactory the ExpressionFactory to use * @return the current runtime configuration */ protected RuntimeConfig buildConfiguration(ServletContext servletContext, ExternalContext externalContext, ExpressionFactory expressionFactory) { RuntimeConfig runtimeConfig = RuntimeConfig.getCurrentInstance(externalContext); runtimeConfig.setExpressionFactory(expressionFactory); // And configure everything new FacesConfigurator(externalContext).configure(); validateFacesConfig(servletContext, externalContext); return runtimeConfig; }
RuntimeConfig runtimeConfig = RuntimeConfig.getCurrentInstance(externalContext); List<ManagedBean> eagerBeans = new ArrayList<ManagedBean>(); for (ManagedBean bean : runtimeConfig.getManagedBeans().values())
private void _initializeMode(ExternalContext context) String facesVersion = RuntimeConfig.getCurrentInstance(context).getFacesVersion(); boolean partialStateSavingDefault;
events = RuntimeConfig.getCurrentInstance( context.getFacesContext().getExternalContext()). getNamedEventManager().getNamedEvent(value);
RuntimeConfig runtimeConfig = RuntimeConfig.getCurrentInstance(externalContext); RuntimeConfig runtimeConfig = RuntimeConfig.getCurrentInstance(externalContext); if (_navigationCases == null || runtimeConfig.isNavigationRulesChanged())
public void loadOptions(FacesContext context, Compiler compiler) { ExternalContext eContext = context.getExternalContext(); // skip comments? compiler.setTrimmingComments(WebConfigParamUtils.getBooleanInitParameter( eContext, PARAMS_SKIP_COMMENTS, false)); compiler.setFaceletsProcessingConfigurations( RuntimeConfig.getCurrentInstance( context.getExternalContext()).getFaceletProcessingConfigurations()); }
public static RuntimeConfig getCurrentInstance(ExternalContext externalContext) { RuntimeConfig runtimeConfig = (RuntimeConfig) externalContext.getApplicationMap().get( APPLICATION_MAP_PARAM_NAME); if (runtimeConfig == null) { runtimeConfig = new RuntimeConfig(); externalContext.getApplicationMap().put(APPLICATION_MAP_PARAM_NAME, runtimeConfig); } return runtimeConfig; }
public Object saveState(FacesContext context) { RuntimeConfig runtimeConfig = RuntimeConfig.getCurrentInstance( context.getExternalContext()); Object[] values = new Object[4]; Integer tagId = runtimeConfig.getIdByNamespace().get(taglibURI); if (tagId != null) { values[0] = tagId; } else if (taglibURI.startsWith(CompositeResourceLibrary.NAMESPACE_PREFIX)) { values[0] = new Object[]{0, taglibURI.substring(35)}; } else if(taglibURI.startsWith(CompositeResourceLibrary.ALIAS_NAMESPACE_PREFIX)) { values[0] = new Object[]{1, taglibURI.substring(34)}; } else { values[0] = taglibURI; } values[1] = tagName; values[2] = attributes; values[3] = baseKey; return values; }