Package org.jahia.services.render

Examples of org.jahia.services.render.URLResolver


    protected RewrittenOutboundUrl processEncodeURL(HttpServletResponse hsResponse, HttpServletRequest hsRequest, boolean encodeUrlHasBeenRun, String outboundUrl) {
        try {
            if (outboundUrl.startsWith(hsRequest.getContextPath()+ Render.getRenderServletPath())) {
                if (StringUtils.isNotEmpty(outboundUrl) && !URLGenerator.isLocalhost(hsRequest.getServerName())) {
                    String url = StringUtils.substringAfter(outboundUrl,hsRequest.getContextPath()+"/cms");
                    URLResolver urlResolver = urlResolverFactory.createURLResolver(url, hsRequest.getServerName() ,hsRequest);
                    if (urlResolver.isMapped()) {
                        try {
                            VanityUrl vanityUrl = vanityUrlService
                                    .getVanityUrlForWorkspaceAndLocale(
                                            urlResolver.getNode(),
                                            urlResolver.getWorkspace(),
                                            urlResolver.getLocale());
                            if (vanityUrl != null) {
                                outboundUrl = outboundUrl.replace("/" + urlResolver.getLocale()
                                        + urlResolver.getPath(), vanityUrl.getUrl());
                            }
                        } catch (RepositoryException e) {
                            logger.debug("Error when trying to obtain vanity url", e);
                        }
                    }
View Full Code Here


        return result;
    }

    protected void handle(HttpServletRequest request, HttpServletResponse response) throws RenderException,
            IOException, RepositoryException {
        URLResolver urlResolver = urlResolverFactory.createURLResolver(request.getPathInfo(), request.getServerName(), request);
        try {
            Query query = getQuery(request, response, urlResolver.getWorkspace(), urlResolver.getLocale());
            if (query == null) {
                return;
            }
            if (logger.isDebugEnabled()) {
                logger.debug("Executing " + query.getLanguage() + " for workspace '" + urlResolver.getWorkspace() + "' and locale '"
                        + urlResolver.getLocale() + "'. Statement: " + query.getStatement());
            }
            writeResults(query.execute(), request, response, query.getLanguage());
        } catch (IllegalArgumentException e) {
            logger.error("Invalid argument", e);
            response.sendError(HttpServletResponse.SC_BAD_REQUEST, e.getMessage());
View Full Code Here

            String jspPath = "/";

            if (settings.getSiteErrorEnabled()) {
                // site information available?
                try {
                    URLResolver urlResolver = ((URLResolver) request.getAttribute("urlResolver"));
                    if (urlResolver != null) {
                        siteKey = urlResolver.getSiteKey();
                    }
                } catch (Exception e) {
                    // ignore
                }
            }
View Full Code Here

                { "/edit/default", Constants.EDIT_WORKSPACE, Locale.ENGLISH, "/", JCRNodeWrapper.class, "/" },
                { "/edit/default/en", Constants.EDIT_WORKSPACE, Locale.ENGLISH, "/", JCRNodeWrapper.class, "/" },
                { "/edit/default/fr", Constants.EDIT_WORKSPACE, Locale.FRENCH, "/", JCRNodeWrapper.class, "/" },
                { "/edit/default/fr/sites/test/home.html", Constants.EDIT_WORKSPACE, Locale.FRENCH, "/sites/test/home.html", JCRNodeWrapper.class, "/sites/test/home" }, };
        for (Object[] testPath : testPathes) {
            URLResolver urlResolver = getUrlResolverFactory().createURLResolver((String) testPath[0], "", (HttpServletRequest) new MockHttpServletRequest("GET",(String) testPath[0]));
            urlResolver.setSiteKey(TESTSITE_NAME);

            assertTrue("Path " + testPath[0] + " not resolved correctly",
                    testPath[1].equals(urlResolver.getWorkspace())
                            && testPath[2].equals(urlResolver.getLocale())
                            && testPath[3].equals(urlResolver.getPath()));
            Object nodeObject = null;
            String path = null;
            try {
                nodeObject = urlResolver.getNode();
                path = ((JCRNodeWrapper) nodeObject).getPath();
            } catch (Exception e) {
                nodeObject = e;
                path = "";
            }
View Full Code Here

                .equals("/testpage"));
        assertTrue("Wrong URL returned", getVanityUrlService()
                .getVanityUrlForWorkspaceAndLocale(pageNode,
                        Constants.EDIT_WORKSPACE, Locale.FRENCH).getUrl()
                .equals("/testpage/french2"));
        URLResolver urlResolver = getUrlResolverFactory().createURLResolver("/edit/default/testpage", site.getServerName(), (HttpServletRequest) new MockHttpServletRequest("GET","/edit/default/testpage"));
        JCRNodeWrapper resolvedNode = urlResolver.getNode();
        assertEquals("Node should not be returned as edit servlet does not resolve vanity URLs",
                "/", resolvedNode.getPath());

        urlResolver = getUrlResolverFactory().createURLResolver("/render/live/testpage", site.getServerName(), (HttpServletRequest) new MockHttpServletRequest("GET","/render/live/testpage"));
        resolvedNode = urlResolver.getNode();
        assertEquals("Node should not be returned as it is not published yet", "/",
                resolvedNode.getPath());

        languages.clear();
        languages.add("en");
        ServicesRegistry.getInstance().getJCRPublicationService().publishByMainId(
                pageNode.getIdentifier(), Constants.EDIT_WORKSPACE,
                Constants.LIVE_WORKSPACE, languages, true, null);
       
        urlResolver = getUrlResolverFactory().createURLResolver("/render/live/testpage", site.getServerName(), (HttpServletRequest) new MockHttpServletRequest("GET","/render/live/testpage"));
        resolvedNode = urlResolver.getNode();
        assertTrue("Wrong node or language returned", pageNode
                .equals(resolvedNode)
                && "en".equals(resolvedNode.getLanguage()));
       
        urlResolver = getUrlResolverFactory().createURLResolver("/render/live/testpage2", site.getServerName(), (HttpServletRequest) new MockHttpServletRequest("GET","/render/live/testpage2"));
        resolvedNode = urlResolver.getNode();
        assertEquals("Node should not be returned as mapping is not active", "/",
                resolvedNode.getPath());

        urlResolver = getUrlResolverFactory().createURLResolver("/render/live/testpage/page3", site.getServerName(), (HttpServletRequest) new MockHttpServletRequest("GET","/render/live/testpage/page3"));
        resolvedNode = urlResolver.getNode();
        assertTrue("Wrong node or language returned", pageNode
                .equals(resolvedNode)
                && "en".equals(resolvedNode.getLanguage()));
       
       
        urlResolver = getUrlResolverFactory().createURLResolver("/render/live/testpage/french2", site.getServerName(), (HttpServletRequest) new MockHttpServletRequest("GET","/render/live/testpage/french2"));
        try {
            resolvedNode = urlResolver.getNode();
            assertTrue("Wrong node or language returned - all vanity urls are published, not just the one of the published language", pageNode
                    .equals(resolvedNode)
                    && "fr".equals(resolvedNode.getLanguage()));
        } catch (AccessDeniedException e) {
        }       

        languages.clear();
        languages.add("fr");
        ServicesRegistry.getInstance().getJCRPublicationService().publishByMainId(
                pageNode.getIdentifier(), Constants.EDIT_WORKSPACE,
                Constants.LIVE_WORKSPACE, languages, true, null);
       
        urlResolver = getUrlResolverFactory().createURLResolver("/render/live/testpage/french2", site.getServerName(), (HttpServletRequest) new MockHttpServletRequest("GET","/render/live/testpage/french2"));
        resolvedNode = urlResolver.getNode();
        assertTrue("Wrong node or language returned", pageNode
                .equals(resolvedNode)
                && "fr".equals(resolvedNode.getLanguage()));       
       
        urlResolver = getUrlResolverFactory().createURLResolver("/render/live/testpage/french", site.getServerName(), (HttpServletRequest) new MockHttpServletRequest("GET","/render/live/testpage/french"));
        resolvedNode = urlResolver.getNode();
        assertTrue("Wrong node or language returned", pageNode
                .equals(resolvedNode)
                && "fr".equals(resolvedNode.getLanguage()));       
    }
View Full Code Here

            Action action = ServicesRegistry.getInstance().getJahiaTemplateManagerService().getActions().get(actionName);
            RenderContext renderContext = (RenderContext) request.getAttribute("renderContext");
            Map<String,List<String>> formDatas = (Map<String, List<String>>) request.getSession().getAttribute("formDatas");
            Resource mainResource = (Resource) request.getAttribute("currentResource");
            Resource resource = new Resource(mainResource.getNode().getNode("responses"), mainResource.getTemplateType(), actionName, Resource.CONFIGURATION_PAGE);
            URLResolver mainResolver = (URLResolver) request.getAttribute("urlResolver");
            String urlPathInfo = StringUtils.substringBefore(mainResolver.getUrlPathInfo(), mainResolver.getPath()) + resource.getNode().getPath();
            if (!actionName.equals("default")) {
                urlPathInfo += "."+ actionName + ".do";
            } else {
                urlPathInfo += "/*";
            }

            URLResolverFactory f = (URLResolverFactory) SpringContextSingleton.getBean("urlResolverFactory");
            URLResolver resolver = f.createURLResolver(urlPathInfo, request.getServerName(), request);
            return action.doExecute(request, renderContext, resource, JCRSessionFactory.getInstance().getCurrentUserSession(workspace, locale), formDatas, resolver);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
View Full Code Here

TOP

Related Classes of org.jahia.services.render.URLResolver

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.