Search in sources :

Example 1 with Cache

use of com.sun.faces.util.Cache in project mojarra by eclipse-ee4j.

the class FaceletViewHandlingStrategy method initialize.

// ------------------------------------------------------- Protected Methods
/**
 * Initialize the core Facelets runtime.
 */
protected void initialize() {
    LOGGER.fine("Initializing FaceletViewHandlingStrategy");
    initializeMappings();
    metadataCache = new Cache<>(ccResource -> {
        FacesContext context = FacesContext.getCurrentInstance();
        return FaceletViewHandlingStrategy.this.createComponentMetadata(context, ccResource);
    });
    try {
        responseBufferSizeSet = webConfig.isSet(FaceletsBufferSize);
        responseBufferSize = Integer.parseInt(webConfig.getOptionValue(FaceletsBufferSize));
    } catch (NumberFormatException nfe) {
        responseBufferSize = Integer.parseInt(FaceletsBufferSize.getDefaultValue());
    }
    LOGGER.fine("Initialization Successful");
    vdlFactory = (ViewDeclarationLanguageFactory) FactoryFinder.getFactory(VIEW_DECLARATION_LANGUAGE_FACTORY);
    FacesContext context = FacesContext.getCurrentInstance();
    ExternalContext extContext = context.getExternalContext();
    Map<String, Object> appMap = extContext.getApplicationMap();
    @SuppressWarnings("unchecked") Map<String, List<String>> contractDataStructure = (Map<String, List<String>>) appMap.remove(RESOURCE_LIBRARY_CONTRACT_DATA_STRUCTURE_KEY);
    if (!isEmpty(contractDataStructure)) {
        contractMappings = new ConcurrentHashMap<>();
        for (Map.Entry<String, List<String>> cur : contractDataStructure.entrySet()) {
            contractMappings.put(cur.getKey(), new CopyOnWriteArrayList<>(cur.getValue()));
            cur.getValue().clear();
        }
        contractDataStructure.clear();
    }
}
Also used : RenderKitUtils.getResponseStateManager(com.sun.faces.renderkit.RenderKitUtils.getResponseStateManager) COMPONENT_RESOURCE_KEY(jakarta.faces.application.Resource.COMPONENT_RESOURCE_KEY) WebConfiguration(com.sun.faces.config.WebConfiguration) XMLFrontMatterSaver(com.sun.faces.facelets.impl.XMLFrontMatterSaver) Util.setViewPopulated(com.sun.faces.util.Util.setViewPopulated) Cache(com.sun.faces.util.Cache) ComponentStruct(com.sun.faces.util.ComponentStruct) FACELET_CONTEXT_KEY(jakarta.faces.view.facelets.FaceletContext.FACELET_CONTEXT_KEY) UIPanel(jakarta.faces.component.UIPanel) ValueChangeEvent(jakarta.faces.event.ValueChangeEvent) COMPOSITE_FACET_NAME(jakarta.faces.component.UIComponent.COMPOSITE_FACET_NAME) Util.saveXMLDECLToFacesContextAttributes(com.sun.faces.util.Util.saveXMLDECLToFacesContextAttributes) HttpSession(jakarta.servlet.http.HttpSession) Map(java.util.Map) DYNAMIC_COMPONENT(com.sun.faces.RIConstants.DYNAMIC_COMPONENT) ExpressionFactory(jakarta.el.ExpressionFactory) WARNING(java.util.logging.Level.WARNING) VisitResult(jakarta.faces.component.visit.VisitResult) ValueHolderAttachedObjectTarget(jakarta.faces.view.ValueHolderAttachedObjectTarget) Util.isViewPopulated(com.sun.faces.util.Util.isViewPopulated) StateManagementStrategy(jakarta.faces.view.StateManagementStrategy) Stream(java.util.stream.Stream) FacesLogger(com.sun.faces.util.FacesLogger) PropertyDescriptor(java.beans.PropertyDescriptor) UIViewRoot(jakarta.faces.component.UIViewRoot) TRUE(java.lang.Boolean.TRUE) CopyOnWriteArrayList(java.util.concurrent.CopyOnWriteArrayList) Development(jakarta.faces.application.ProjectStage.Development) RenderKit(jakarta.faces.render.RenderKit) DoctypeRenderer(com.sun.faces.renderkit.html_basic.DoctypeRenderer) MethodExpressionValidator(jakarta.faces.validator.MethodExpressionValidator) FacesContext(jakarta.faces.context.FacesContext) ValueExpression(jakarta.el.ValueExpression) ArrayList(java.util.ArrayList) ActionSource2AttachedObjectTarget(jakarta.faces.view.ActionSource2AttachedObjectTarget) BeanInfo(java.beans.BeanInfo) ActionEvent(jakarta.faces.event.ActionEvent) FaceletsBufferSize(com.sun.faces.config.WebConfiguration.WebContextInitParameter.FaceletsBufferSize) FaceletsViewMappings(com.sun.faces.config.WebConfiguration.WebContextInitParameter.FaceletsViewMappings) StateSavingMethod(com.sun.faces.config.WebConfiguration.WebContextInitParameter.StateSavingMethod) DefaultFaceletFactory(com.sun.faces.facelets.impl.DefaultFaceletFactory) MethodExpression(jakarta.el.MethodExpression) DEFAULT_FACELETS_SUFFIX(jakarta.faces.application.ViewHandler.DEFAULT_FACELETS_SUFFIX) CompositeComponentTagHandler(com.sun.faces.facelets.tag.faces.CompositeComponentTagHandler) MethodExpressionValueChangeListener(jakarta.faces.event.MethodExpressionValueChangeListener) ViewMetadata(jakarta.faces.view.ViewMetadata) IOException(java.io.IOException) VIEW_DECLARATION_LANGUAGE_FACTORY(jakarta.faces.FactoryFinder.VIEW_DECLARATION_LANGUAGE_FACTORY) Doctype(jakarta.faces.component.Doctype) Util(com.sun.faces.util.Util) ViewHandler(jakarta.faces.application.ViewHandler) BehaviorHolderAttachedObjectTarget(jakarta.faces.view.BehaviorHolderAttachedObjectTarget) Util.isViewIdExactMappedToFacesServlet(com.sun.faces.util.Util.isViewIdExactMappedToFacesServlet) BEANINFO_KEY(jakarta.faces.component.UIComponent.BEANINFO_KEY) ApplicationAssociate(com.sun.faces.application.ApplicationAssociate) ExternalContext(jakarta.faces.context.ExternalContext) ViewVisitOption(jakarta.faces.application.ViewVisitOption) UIDebug(com.sun.faces.facelets.tag.ui.UIDebug) ContextualCompositeMethodExpression(com.sun.faces.facelets.el.ContextualCompositeMethodExpression) ResponseWriter(jakarta.faces.context.ResponseWriter) ActionSource2AttachedObjectHandler(jakarta.faces.view.ActionSource2AttachedObjectHandler) VIEW_LOCATION_KEY(jakarta.faces.component.UIComponent.VIEW_LOCATION_KEY) AttachedObjectHandler(jakarta.faces.view.AttachedObjectHandler) VariableMapperWrapper(com.sun.faces.facelets.el.VariableMapperWrapper) RenderKitUtils(com.sun.faces.renderkit.RenderKitUtils) ActionSource2(jakarta.faces.component.ActionSource2) ViewDeclarationLanguageFactory(jakarta.faces.view.ViewDeclarationLanguageFactory) FacesException(jakarta.faces.FacesException) RETURN_AS_MINIMAL_IMPLICIT_OUTCOME(jakarta.faces.application.ViewVisitOption.RETURN_AS_MINIMAL_IMPLICIT_OUTCOME) HtmlUtils(com.sun.faces.util.HtmlUtils) Util.getDOCTYPEFromFacesContextAttributes(com.sun.faces.util.Util.getDOCTYPEFromFacesContextAttributes) STATE_SAVING_METHOD_SERVER(jakarta.faces.application.StateManager.STATE_SAVING_METHOD_SERVER) StateContext.getStateContext(com.sun.faces.context.StateContext.getStateContext) VisitContext(jakarta.faces.component.visit.VisitContext) EditableValueHolder(jakarta.faces.component.EditableValueHolder) BeanDescriptor(java.beans.BeanDescriptor) ELContext(jakarta.el.ELContext) CHARACTER_ENCODING_KEY(jakarta.faces.application.ViewHandler.CHARACTER_ENCODING_KEY) VariableMapper(jakarta.el.VariableMapper) FaceletContext(jakarta.faces.view.facelets.FaceletContext) Collections.emptyList(java.util.Collections.emptyList) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) StateContext(com.sun.faces.context.StateContext) EditableValueHolderAttachedObjectHandler(jakarta.faces.view.EditableValueHolderAttachedObjectHandler) Logger(java.util.logging.Logger) Util.getXMLDECLFromFacesContextAttributes(com.sun.faces.util.Util.getXMLDECLFromFacesContextAttributes) IS_BUILDING_INITIAL_STATE(jakarta.faces.application.StateManager.IS_BUILDING_INITIAL_STATE) FileNotFoundException(java.io.FileNotFoundException) FACELET_FACTORY(com.sun.faces.util.RequestStateManager.FACELET_FACTORY) List(java.util.List) FactoryFinder(jakarta.faces.FactoryFinder) FACELETS_ENCODING_KEY(com.sun.faces.RIConstants.FACELETS_ENCODING_KEY) Util.split(com.sun.faces.util.Util.split) Writer(java.io.Writer) Arrays.stream(java.util.Arrays.stream) RequestStateManager(com.sun.faces.util.RequestStateManager) Facelet(jakarta.faces.view.facelets.Facelet) ATTACHED_OBJECT_TARGETS_KEY(jakarta.faces.view.AttachedObjectTarget.ATTACHED_OBJECT_TARGETS_KEY) REMOVE(com.sun.faces.util.ComponentStruct.REMOVE) Util.saveDOCTYPEToFacesContextAttributes(com.sun.faces.util.Util.saveDOCTYPEToFacesContextAttributes) ADD(com.sun.faces.util.ComponentStruct.ADD) HashMap(java.util.HashMap) CompositeComponentBeanInfo(com.sun.faces.facelets.tag.composite.CompositeComponentBeanInfo) SEVERE(java.util.logging.Level.SEVERE) Level(java.util.logging.Level) Resource(jakarta.faces.application.Resource) AttachedObjectTarget(jakarta.faces.view.AttachedObjectTarget) ViewDeclarationLanguage(jakarta.faces.view.ViewDeclarationLanguage) EditableValueHolderAttachedObjectTarget(jakarta.faces.view.EditableValueHolderAttachedObjectTarget) FINE(java.util.logging.Level.FINE) Util.notNull(com.sun.faces.util.Util.notNull) Util.isEmpty(com.sun.faces.util.Util.isEmpty) Iterator(java.util.Iterator) FLOW_DEFINITION_ID_SUFFIX(com.sun.faces.RIConstants.FLOW_DEFINITION_ID_SUFFIX) ValueHolderAttachedObjectHandler(jakarta.faces.view.ValueHolderAttachedObjectHandler) UIComponent(jakarta.faces.component.UIComponent) MethodExpressionActionListener(jakarta.faces.event.MethodExpressionActionListener) COMPONENT_TYPE(jakarta.faces.component.UIViewRoot.COMPONENT_TYPE) PostAddToViewEvent(jakarta.faces.event.PostAddToViewEvent) UIDebug.debugRequest(com.sun.faces.facelets.tag.ui.UIDebug.debugRequest) BehaviorHolderAttachedObjectHandler(jakarta.faces.view.BehaviorHolderAttachedObjectHandler) SC_NOT_FOUND(jakarta.servlet.http.HttpServletResponse.SC_NOT_FOUND) FINEST(java.util.logging.Level.FINEST) FacesContext(jakarta.faces.context.FacesContext) ExternalContext(jakarta.faces.context.ExternalContext) CopyOnWriteArrayList(java.util.concurrent.CopyOnWriteArrayList) ArrayList(java.util.ArrayList) Collections.emptyList(java.util.Collections.emptyList) List(java.util.List) Map(java.util.Map) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) HashMap(java.util.HashMap)

Example 2 with Cache

use of com.sun.faces.util.Cache in project mojarra by eclipse-ee4j.

the class DefaultFaceletFactory method init.

public final void init(FacesContext facesContext, Compiler compiler, DefaultResourceResolver resolver, long refreshPeriod, FaceletCache cache) {
    notNull("compiler", compiler);
    notNull("resolver", resolver);
    ExternalContext externalContext = facesContext.getExternalContext();
    WebConfiguration config = WebConfiguration.getInstance(externalContext);
    this.compiler = compiler;
    cachePerContract = new ConcurrentHashMap<>();
    this.resolver = resolver;
    baseUrl = resolver.resolveUrl("/");
    this.idMappers = config.isOptionEnabled(UseFaceletsID) ? null : new Cache<>(new IdMapperFactory());
    refreshPeriod = refreshPeriod >= 0 ? refreshPeriod * 1000 : -1;
    this.refreshPeriod = refreshPeriod;
    if (log.isLoggable(Level.FINE)) {
        log.log(Level.FINE, "Using ResourceResolver: {0}", resolver);
        log.log(Level.FINE, "Using Refresh Period: {0}", refreshPeriod);
    }
    // We can cast to the FaceletCache<DefaultFacelet> here because we know
    // that the Generics information is only used at compile time, and all cache
    // implementations will be using instance factories provided by us and returning DefaultFacelet
    this.cache = initCache(cache);
}
Also used : ExternalContext(jakarta.faces.context.ExternalContext) WebConfiguration(com.sun.faces.config.WebConfiguration) Cache(com.sun.faces.util.Cache) FaceletCache(jakarta.faces.view.facelets.FaceletCache)

Example 3 with Cache

use of com.sun.faces.util.Cache in project mojarra by eclipse-ee4j.

the class DefaultFaceletFactory method initCache.

// ---------------------------------------------------------- Private Methods
private FaceletCache<DefaultFacelet> initCache(FaceletCache<DefaultFacelet> cache) {
    if (cache == null) {
        FaceletCacheFactory cacheFactory = (FaceletCacheFactory) FactoryFinder.getFactory(FactoryFinder.FACELET_CACHE_FACTORY);
        cache = cacheFactory.getFaceletCache();
    }
    // Create instance factories for the cache, so that the cache can
    // create Facelets and Metadata Facelets
    FaceletCache.MemberFactory<DefaultFacelet> faceletFactory = key -> createFacelet(key);
    FaceletCache.MemberFactory<DefaultFacelet> metadataFaceletFactory = key -> createMetadataFacelet(key);
    cache.setCacheFactories(faceletFactory, metadataFaceletFactory);
    return cache;
}
Also used : FacesFileNotFoundException(com.sun.faces.context.FacesFileNotFoundException) CdiUtils.getBeanReference(com.sun.faces.cdi.CdiUtils.getBeanReference) WebConfiguration(com.sun.faces.config.WebConfiguration) Util.saveDOCTYPEToFacesContextAttributes(com.sun.faces.util.Util.saveDOCTYPEToFacesContextAttributes) Cache(com.sun.faces.util.Cache) URL(java.net.URL) Compiler(com.sun.faces.facelets.compiler.Compiler) FacesContext(jakarta.faces.context.FacesContext) Util.saveXMLDECLToFacesContextAttributes(com.sun.faces.util.Util.saveXMLDECLToFacesContextAttributes) CHAR_ENCODING(com.sun.faces.RIConstants.CHAR_ENCODING) ELException(jakarta.el.ELException) ConcurrentMap(java.util.concurrent.ConcurrentMap) Level(java.util.logging.Level) FacesException(jakarta.faces.FacesException) Pattern.quote(java.util.regex.Pattern.quote) ByteArrayInputStream(java.io.ByteArrayInputStream) Map(java.util.Map) OutputStreamWriter(java.io.OutputStreamWriter) Application(jakarta.faces.application.Application) FaceletException(jakarta.faces.view.facelets.FaceletException) Util.notNull(com.sun.faces.util.Util.notNull) Util.isEmpty(com.sun.faces.util.Util.isEmpty) MalformedURLException(java.net.MalformedURLException) View(jakarta.faces.annotation.View) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) FileOutputStream(java.io.FileOutputStream) IOException(java.io.IOException) UseFaceletsID(com.sun.faces.config.WebConfiguration.BooleanWebContextInitParameter.UseFaceletsID) Doctype(jakarta.faces.component.Doctype) Logger(java.util.logging.Logger) UIComponent(jakarta.faces.component.UIComponent) File(java.io.File) FileNotFoundException(java.io.FileNotFoundException) List(java.util.List) FacesLogger(com.sun.faces.util.FacesLogger) FactoryFinder(jakarta.faces.FactoryFinder) FaceletHandler(jakarta.faces.view.facelets.FaceletHandler) RIConstants(com.sun.faces.RIConstants) ExternalContext(jakarta.faces.context.ExternalContext) Pattern(java.util.regex.Pattern) FaceletCacheFactory(jakarta.faces.view.facelets.FaceletCacheFactory) FINEST(java.util.logging.Level.FINEST) UnsupportedEncodingException(java.io.UnsupportedEncodingException) Facelet(jakarta.faces.view.facelets.Facelet) FaceletCache(jakarta.faces.view.facelets.FaceletCache) FaceletCache(jakarta.faces.view.facelets.FaceletCache) FaceletCacheFactory(jakarta.faces.view.facelets.FaceletCacheFactory)

Aggregations

WebConfiguration (com.sun.faces.config.WebConfiguration)3 Cache (com.sun.faces.util.Cache)3 ExternalContext (jakarta.faces.context.ExternalContext)3 FacesLogger (com.sun.faces.util.FacesLogger)2 Util.isEmpty (com.sun.faces.util.Util.isEmpty)2 Util.notNull (com.sun.faces.util.Util.notNull)2 Util.saveDOCTYPEToFacesContextAttributes (com.sun.faces.util.Util.saveDOCTYPEToFacesContextAttributes)2 Util.saveXMLDECLToFacesContextAttributes (com.sun.faces.util.Util.saveXMLDECLToFacesContextAttributes)2 RIConstants (com.sun.faces.RIConstants)1 CHAR_ENCODING (com.sun.faces.RIConstants.CHAR_ENCODING)1 DYNAMIC_COMPONENT (com.sun.faces.RIConstants.DYNAMIC_COMPONENT)1 FACELETS_ENCODING_KEY (com.sun.faces.RIConstants.FACELETS_ENCODING_KEY)1 FLOW_DEFINITION_ID_SUFFIX (com.sun.faces.RIConstants.FLOW_DEFINITION_ID_SUFFIX)1 ApplicationAssociate (com.sun.faces.application.ApplicationAssociate)1 CdiUtils.getBeanReference (com.sun.faces.cdi.CdiUtils.getBeanReference)1 UseFaceletsID (com.sun.faces.config.WebConfiguration.BooleanWebContextInitParameter.UseFaceletsID)1 FaceletsBufferSize (com.sun.faces.config.WebConfiguration.WebContextInitParameter.FaceletsBufferSize)1 FaceletsViewMappings (com.sun.faces.config.WebConfiguration.WebContextInitParameter.FaceletsViewMappings)1 StateSavingMethod (com.sun.faces.config.WebConfiguration.WebContextInitParameter.StateSavingMethod)1 FacesFileNotFoundException (com.sun.faces.context.FacesFileNotFoundException)1