Search in sources :

Example 16 with ResourceReferenceRequestHandler

use of org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler in project wicket by apache.

the class CryptoMapperTest method resourceReferenceWithModifiedSegments.

/**
 * Relative ResourceReferences, WICKET-3514
 */
@Test
public void resourceReferenceWithModifiedSegments() {
    PackageResourceReference resource = new PackageResourceReference(getClass(), "crypt/crypt.txt");
    Url url = mapper.mapHandler(new ResourceReferenceRequestHandler(resource));
    url.getSegments().remove(url.getSegments().size() - 1);
    url.getSegments().add("modified-crypt.txt");
    Request request = getRequest(url);
    IRequestHandler requestHandler = mapper.mapRequest(request);
    assertNotNull(requestHandler);
    requestHandler = unwrapRequestHandlerDelegate(requestHandler);
    assertThat(requestHandler, instanceOf(ResourceReferenceRequestHandler.class));
    ResourceReferenceRequestHandler handler = (ResourceReferenceRequestHandler) requestHandler;
    assertEquals(getClass(), handler.getResourceReference().getScope());
    assertEquals("crypt/modified-crypt.txt", handler.getResourceReference().getName());
}
Also used : ResourceReferenceRequestHandler(org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler) IRequestHandler(org.apache.wicket.request.IRequestHandler) PackageResourceReference(org.apache.wicket.request.resource.PackageResourceReference) Request(org.apache.wicket.request.Request) Url(org.apache.wicket.request.Url) Test(org.junit.Test)

Example 17 with ResourceReferenceRequestHandler

use of org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler in project wicket by apache.

the class UrlResourceReferenceMapper method mapHandler.

@Override
public Url mapHandler(IRequestHandler requestHandler) {
    Url url = null;
    if (requestHandler instanceof ResourceReferenceRequestHandler) {
        ResourceReferenceRequestHandler resourceReferenceRequestHandler = (ResourceReferenceRequestHandler) requestHandler;
        ResourceReference resourceReference = resourceReferenceRequestHandler.getResourceReference();
        while (resourceReference instanceof ResourceBundleReference) {
            // unwrap the bundle to render the url for the actual reference
            resourceReference = ((ResourceBundleReference) resourceReference).getBundleReference();
        }
        if (resourceReference instanceof UrlResourceReference) {
            UrlResourceReference urlResourceReference = (UrlResourceReference) resourceReference;
            url = urlResourceReference.getUrl();
        }
    }
    return url;
}
Also used : ResourceReferenceRequestHandler(org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler) UrlResourceReference(org.apache.wicket.request.resource.UrlResourceReference) ResourceBundleReference(org.apache.wicket.resource.bundles.ResourceBundleReference) UrlResourceReference(org.apache.wicket.request.resource.UrlResourceReference) ResourceReference(org.apache.wicket.request.resource.ResourceReference) Url(org.apache.wicket.request.Url)

Example 18 with ResourceReferenceRequestHandler

use of org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler in project wicket by apache.

the class ConversationPropagator method onUrlMapped.

@Override
public void onUrlMapped(RequestCycle cycle, IRequestHandler handler, Url url) {
    // no need to propagate the conversation to packaged resources, they should never change
    if (handler instanceof ResourceReferenceRequestHandler) {
        if (((ResourceReferenceRequestHandler) handler).getResourceReference() instanceof PackageResourceReference) {
            return;
        }
    }
    Conversation conversation = getConversation(cycle);
    if (conversation == null || conversation.isTransient()) {
        return;
    }
    if (propagation.propagatesViaParameters(handler)) {
        // propagate cid to bookmarkable pages via urls
        logger.debug("Propagating non-transient conversation {} via url", conversation.getId());
        url.setQueryParameter(CID, conversation.getId());
    }
}
Also used : ResourceReferenceRequestHandler(org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler) PackageResourceReference(org.apache.wicket.request.resource.PackageResourceReference) Conversation(javax.enterprise.context.Conversation)

Example 19 with ResourceReferenceRequestHandler

use of org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler in project wicket by apache.

the class RequestCycleUrlForTest method urlForResourceReference.

/**
 * ResourceReference with IStaticCacheableResource should not have the jsessionid encoded in the url
 *
 * @throws Exception
 */
@Test
public void urlForResourceReference() throws Exception {
    final IStaticCacheableResource resource = mock(IStaticCacheableResource.class);
    ResourceReference reference = new ResourceReference("dummy") {

        @Override
        public IResource getResource() {
            return resource;
        }
    };
    ResourceReferenceRequestHandler handler = new ResourceReferenceRequestHandler(reference);
    CharSequence url = requestCycle.urlFor(handler);
    assertEquals("./" + RES_REF_URL, url);
}
Also used : IStaticCacheableResource(org.apache.wicket.request.resource.caching.IStaticCacheableResource) ResourceReferenceRequestHandler(org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler) ResourceReference(org.apache.wicket.request.resource.ResourceReference) Test(org.junit.Test)

Example 20 with ResourceReferenceRequestHandler

use of org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler in project wicket by apache.

the class ContextRelativeResourceCachingTest method mapHandler.

/**
 */
@Test
public void mapHandler() {
    ContextRelativeResource resource = new ContextRelativeResource("/style.css");
    init(resource, "/test/resource");
    Request request = createRequest("test/resource-version-123?bla=4567");
    final IRequestHandler handler = tester.getApplication().getRootRequestMapper().mapRequest(request);
    assertThat(handler, instanceOf(ResourceReferenceRequestHandler.class));
    assertEquals(((ResourceReferenceRequestHandler) handler).getResource(), resource);
}
Also used : ResourceReferenceRequestHandler(org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler) IRequestHandler(org.apache.wicket.request.IRequestHandler) Request(org.apache.wicket.request.Request) ContextRelativeResource(org.apache.wicket.request.resource.ContextRelativeResource) Test(org.junit.Test)

Aggregations

ResourceReferenceRequestHandler (org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler)41 Url (org.apache.wicket.request.Url)33 Test (org.junit.Test)31 ResourceUrl (org.apache.wicket.request.resource.caching.ResourceUrl)26 IRequestHandler (org.apache.wicket.request.IRequestHandler)20 PageParameters (org.apache.wicket.request.mapper.parameter.PageParameters)9 PackageResourceReference (org.apache.wicket.request.resource.PackageResourceReference)6 ResourceReference (org.apache.wicket.request.resource.ResourceReference)6 Request (org.apache.wicket.request.Request)5 Locale (java.util.Locale)3 IResource (org.apache.wicket.request.resource.IResource)3 IStaticCacheableResource (org.apache.wicket.request.resource.caching.IStaticCacheableResource)3 ContextRelativeResource (org.apache.wicket.request.resource.ContextRelativeResource)2 MetaInfStaticResourceReference (org.apache.wicket.request.resource.MetaInfStaticResourceReference)2 UrlResourceReference (org.apache.wicket.request.resource.UrlResourceReference)2 ResourceBundleReference (org.apache.wicket.resource.bundles.ResourceBundleReference)2 JSONObject (com.github.openjson.JSONObject)1 StringTokenizer (java.util.StringTokenizer)1 Conversation (javax.enterprise.context.Conversation)1 WicketRuntimeException (org.apache.wicket.WicketRuntimeException)1