Search in sources :

Example 31 with Url

use of org.apache.wicket.request.Url in project wicket by apache.

the class MountedMapper method mapHandler.

@Override
public Url mapHandler(IRequestHandler requestHandler) {
    Url url = super.mapHandler(requestHandler);
    if (url == null && requestHandler instanceof ListenerRequestHandler && getRecreateMountedPagesAfterExpiry()) {
        ListenerRequestHandler handler = (ListenerRequestHandler) requestHandler;
        IRequestablePage page = handler.getPage();
        if (checkPageInstance(page)) {
            Integer renderCount = null;
            if (handler.includeRenderCount()) {
                renderCount = page.getRenderCount();
            }
            String componentPath = handler.getComponentPath();
            PageInfo pageInfo = getPageInfo(handler);
            ComponentInfo componentInfo = new ComponentInfo(renderCount, componentPath, handler.getBehaviorIndex());
            PageComponentInfo pageComponentInfo = new PageComponentInfo(pageInfo, componentInfo);
            PageParameters parameters = newPageParameters();
            parameters.mergeWith(page.getPageParameters());
            UrlInfo urlInfo = new UrlInfo(pageComponentInfo, page.getClass(), parameters.mergeWith(handler.getPageParameters()));
            url = buildUrl(urlInfo);
        }
    }
    return url;
}
Also used : PageInfo(org.apache.wicket.request.mapper.info.PageInfo) IRequestablePage(org.apache.wicket.request.component.IRequestablePage) ListenerRequestHandler(org.apache.wicket.core.request.handler.ListenerRequestHandler) ComponentInfo(org.apache.wicket.request.mapper.info.ComponentInfo) PageComponentInfo(org.apache.wicket.request.mapper.info.PageComponentInfo) PageParameters(org.apache.wicket.request.mapper.parameter.PageParameters) Url(org.apache.wicket.request.Url) PageComponentInfo(org.apache.wicket.request.mapper.info.PageComponentInfo)

Example 32 with Url

use of org.apache.wicket.request.Url in project wicket by apache.

the class PageInstanceMapper method mapRequest.

/**
 * @see org.apache.wicket.request.IRequestMapper#mapRequest(org.apache.wicket.request.Request)
 */
@Override
public IRequestHandler mapRequest(Request request) {
    if (matches(request)) {
        Url url = request.getUrl();
        PageComponentInfo info = getPageComponentInfo(url);
        if (info != null && info.getPageInfo().getPageId() != null) {
            Integer renderCount = info.getComponentInfo() != null ? info.getComponentInfo().getRenderCount() : null;
            if (info.getComponentInfo() == null) {
                PageProvider provider = new PageProvider(info.getPageInfo().getPageId(), renderCount);
                provider.setPageSource(getContext());
                // render page
                return new RenderPageRequestHandler(provider);
            } else {
                ComponentInfo componentInfo = info.getComponentInfo();
                PageAndComponentProvider provider = new PageAndComponentProvider(info.getPageInfo().getPageId(), renderCount, componentInfo.getComponentPath());
                provider.setPageSource(getContext());
                return new ListenerRequestHandler(provider, componentInfo.getBehaviorId());
            }
        }
    }
    return null;
}
Also used : RenderPageRequestHandler(org.apache.wicket.core.request.handler.RenderPageRequestHandler) PageProvider(org.apache.wicket.core.request.handler.PageProvider) PageAndComponentProvider(org.apache.wicket.core.request.handler.PageAndComponentProvider) ComponentInfo(org.apache.wicket.request.mapper.info.ComponentInfo) PageComponentInfo(org.apache.wicket.request.mapper.info.PageComponentInfo) ListenerRequestHandler(org.apache.wicket.core.request.handler.ListenerRequestHandler) Url(org.apache.wicket.request.Url) PageComponentInfo(org.apache.wicket.request.mapper.info.PageComponentInfo)

Example 33 with Url

use of org.apache.wicket.request.Url in project wicket by apache.

the class PageInstanceMapper method matches.

/**
 * Matches when the request url starts with
 * {@link org.apache.wicket.core.request.mapper.IMapperContext#getNamespace()}/{@link org.apache.wicket.core.request.mapper.IMapperContext#getPageIdentifier()}
 * or when the base url starts with
 * {@link org.apache.wicket.core.request.mapper.IMapperContext#getNamespace()}/{@link org.apache.wicket.core.request.mapper.IMapperContext#getPageIdentifier()}
 * and the request url with {@link org.apache.wicket.core.request.mapper.IMapperContext#getPageIdentifier()}
 *
 * @param request
 *      the request to check
 * @return {@code true} if the conditions match
 */
private boolean matches(final Request request) {
    boolean matches = false;
    Url url = request.getUrl();
    Url baseUrl = request.getClientUrl();
    String namespace = getContext().getNamespace();
    String pageIdentifier = getContext().getPageIdentifier();
    List<String> segments = url.getSegments();
    if (isNotPageInstanceUrl(segments, pageIdentifier)) {
        return false;
    }
    if (urlStartsWith(url, namespace, pageIdentifier)) {
        matches = true;
    } else if (urlStartsWith(baseUrl, namespace, pageIdentifier) && urlStartsWith(url, pageIdentifier)) {
        matches = true;
    } else if (urlStartsWith(baseUrl, pageIdentifier) && urlStartsWith(url, pageIdentifier)) {
        matches = true;
    }
    return matches;
}
Also used : Url(org.apache.wicket.request.Url)

Example 34 with Url

use of org.apache.wicket.request.Url in project wicket by apache.

the class PackageResourceReference method getResource.

/**
 * @see org.apache.wicket.request.resource.ResourceReference#getResource()
 */
@Override
public PackageResource getResource() {
    final String extension = getExtension();
    final PackageResource resource;
    RequestCycle requestCycle = RequestCycle.get();
    UrlAttributes urlAttributes = null;
    if (requestCycle != null) {
        // resource attributes (locale, style, variation) might be encoded in the URL
        final Url url = requestCycle.getRequest().getUrl();
        urlAttributes = ResourceUtil.decodeResourceReferenceAttributes(url);
    }
    final String currentVariation = getCurrentVariation(urlAttributes);
    final String currentStyle = getCurrentStyle(urlAttributes);
    final Locale currentLocale = getCurrentLocale(urlAttributes);
    final Class<?> scope = getScope();
    final String name = getName();
    if (CSS_EXTENSION.equals(extension)) {
        resource = new CssPackageResource(scope, name, currentLocale, currentStyle, currentVariation);
    } else if (JAVASCRIPT_EXTENSION.equals(extension)) {
        resource = new JavaScriptPackageResource(scope, name, currentLocale, currentStyle, currentVariation);
    } else {
        resource = new PackageResource(scope, name, currentLocale, currentStyle, currentVariation);
    }
    resource.readBuffered(readBuffered);
    removeCompressFlagIfUnnecessary(resource);
    return resource;
}
Also used : Locale(java.util.Locale) RequestCycle(org.apache.wicket.request.cycle.RequestCycle) Url(org.apache.wicket.request.Url)

Example 35 with Url

use of org.apache.wicket.request.Url in project wicket by apache.

the class HttpsMapper method mapHandler.

/**
 * Creates a url for the handler. Modifies it with the correct {@link Scheme} if necessary.
 *
 * @param handler
 * @param request
 * @return url
 */
final Url mapHandler(IRequestHandler handler, Request request) {
    Url url = delegate.mapHandler(handler);
    Scheme desired = getDesiredSchemeFor(handler);
    if (Scheme.ANY.equals(desired)) {
        return url;
    }
    Scheme current = getSchemeOf(request);
    if (!desired.isCompatibleWith(current)) {
        // the generated url does not have the correct scheme, set it (which in turn will cause
        // the url to be rendered in its full representation)
        url.setProtocol(desired.urlName());
        url.setPort(desired.getPort(config));
    }
    return url;
}
Also used : Url(org.apache.wicket.request.Url)

Aggregations

Url (org.apache.wicket.request.Url)347 Test (org.junit.jupiter.api.Test)220 IRequestHandler (org.apache.wicket.request.IRequestHandler)143 MockWebRequest (org.apache.wicket.mock.MockWebRequest)57 UrlRenderer (org.apache.wicket.request.UrlRenderer)57 PageParameters (org.apache.wicket.request.mapper.parameter.PageParameters)56 RenderPageRequestHandler (org.apache.wicket.core.request.handler.RenderPageRequestHandler)50 IRequestablePage (org.apache.wicket.request.component.IRequestablePage)50 Test (org.junit.Test)46 PageProvider (org.apache.wicket.core.request.handler.PageProvider)40 IPageProvider (org.apache.wicket.core.request.handler.IPageProvider)34 ResourceReferenceRequestHandler (org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler)34 ResourceUrl (org.apache.wicket.request.resource.caching.ResourceUrl)33 BookmarkableListenerRequestHandler (org.apache.wicket.core.request.handler.BookmarkableListenerRequestHandler)26 ListenerRequestHandler (org.apache.wicket.core.request.handler.ListenerRequestHandler)25 Request (org.apache.wicket.request.Request)24 MockPage (org.apache.wicket.MockPage)22 BookmarkablePageRequestHandler (org.apache.wicket.core.request.handler.BookmarkablePageRequestHandler)17 BufferedWebResponse (org.apache.wicket.protocol.http.BufferedWebResponse)16 PageAndComponentProvider (org.apache.wicket.core.request.handler.PageAndComponentProvider)15