Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 // Copyright 2006, 2007, 2008, 2009 The Apache Software Foundation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
 // http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package org.apache.tapestry5.internal.services;
This is the original implementation, which is built around the PagePool.
    private final PagePool pagePool;
    private final ComponentClassResolver resolver;
    
Keyed on canonical page name (case insensitive).
    private final Map<StringPagecache = CollectionFactory.newCaseInsensitiveMap();
    public RequestPageCacheImpl(PagePool pagePoolComponentClassResolver resolver)
    {
        this. = pagePool;
        this. = resolver;
    }
    public Page get(String pageName)
    {
        assert pageName != null;
        String canonicalName = .canonicalizePageName(pageName);
        Page page = .get(canonicalName);
        if (page == null)
        {
            page = .checkout(canonicalName);
            try
            {
                page.attached();
            }
            catch (RuntimeException ex)
            {
                .discard(page);
                throw ex;
            }
            .put(canonicalNamepage);
        }
        return page;
    }

    
At the end of the request, when the thread cleanup event occurs, release any pages attached to the request back to the page pool.
    public void threadDidCleanup()
    {
        for (Page p : .values())
            .release(p);
    }
New to GrepCode? Check out our FAQ X