If you are looking at the url mapping in the context of cq 5 you should probably read [1]. It describes how to add custom configuration for the JcrResourceResolver to enable the url mapping (stripping of /content/site/ for instance from your urls). For more details check out the map(request, path) method of the ResourceResolver Interface. In cq5 environment you also need to take care of the dispatcher configuration in your web server to get the cache invalidation working correctly, see [2]
[1] http://dev.day.com/content/kb/home/cq5/CQ5Troubleshooting/CQ5UpgradeIssues/CQ53Upgrade/CQ53LostResourceResolverMappingsAfterUpgrade.html [2] http://dev.day.com/content/kb/home/cq5/CQ5SystemAdministration/HowToFlushMappedContent.html Cheers, Igor. pro!vision GmbH Telefon +49 (69) 8700328-21 Geschäftsführer: Karim Khan, Stefan Seifert Sitz der Gesellschaft: Berlin AG Charlottenburg, HRB78141, USt-IdNr. DE209954974 >-----Original Message----- >From: Jakob Külzer [mailto:[email protected]] >Sent: Wednesday, April 18, 2012 10:56 PM >To: [email protected] >Subject: Re: Using Filter and RequestDispatcher to substitute responses > >Hey David, > >No problem. ;) Yeah, we're about to move to Day 5 and/or have projects >that only run on Day 5 which I'm moved onto now, so I'm trying to >learn as much as I can. > >Day CQ 4 is not based on Sling. In general Day CQ 4 is a very... >inflexible platform that here and there shows ideas similar to Sling, >but nowhere as refined. In order to get our stuff working on CQ 4 I >ended up decompiling a lot of it's core jar files... ;) > >By "externalizing" (in lieu of a better word) i mean translating an >internal reference like /content/site/lang/some/page to an external >usable path like /lang/some/page.<selectors>.<extension></suffix>. For >our use cases (consumer sites) rewriting the URLs to a "user friendly" >URL is important. > >Hope that makes sense. > >Cheers, >Jakob > >On Wed, Apr 18, 2012 at 4:37 PM, David G. <[email protected]> >wrote: >> Jakob, >> >> Ah - sorry, i missed that you are on CQ. That's a very good reason to >> be using Sling (whether you want to or not :)). >> Did CQ4 not use Sling (CQ4 was before my time)? >> >> The CQ Link Rewriter uses pipelines to do thinks like remove invalid >> links and and rewrite outgoing urls (if you're using URI mapping via >> etc/map or in the jcrresourceresolver). >> >> Check out the package Justin E. put together for an example of >> Pipelines -its a bit more instructive than the Sling docs. [1] >> >> Can you expound on what you mean by "externalizing" links? Do you just >> mean adding specific selectors to links based on some criteria? >> >> [1] http://www.wemblog.com/2011/08/how-to-remove-html-extension- >from-url.html >> >> >> >> >> >> On Wed, Apr 18, 2012 at 3:44 PM, Jakob Külzer <[email protected]> >wrote: >>> Hello David, >>> no, you're not rude at all, in fact I am grateful for suggestions. As >>> i've acknowledged earlier, i might be doing the completely wrong >>> thing. As for now, I'm trying to understand how Sling works and if I >>> can port the successful patterns that we implemented on Day CQ 4 >>> (ancient!) on the much newer Day CQ 5. With that said, the reason why >>> I'm looking at Sling is obviously that CQ 5 is built on Sling. >>> >>> The rewriter pipeline is a very interesting piece, I'll check it out. >>> Thank you for the pointer. How do other people solve the issue of >>> correctly externalizing internal links? Does anybody have experience >>> with this? >>> >>> Cheers, >>> Jakob >>> >>> On Wed, Apr 18, 2012 at 3:34 PM, David G. <[email protected]> >wrote: >>>> Jakob, >>>> >>>> Im dont mean to be snide, but if you dont want to/can't meet your >>>> requirements using a restful architecture, why are you using Sling as >>>> your framework? It seems like you'd be much better served using some >>>> other framework. I do sympathize as I came from a more lax MVC-based >>>> web-app background and its easy to slip back into a behavior-based >>>> mindset (rather than a content-based mindset). >>>> >>>> Also, you could use Sling Rewriter Pipelines/Processors [1] to write >>>> all your links to include the mobile selector (page.mobile.com) if to >>>> make links on your mobile site point to "mobile" resource >>>> representations. >>>> >>>> [1] http://sling.apache.org/site/rewriting-the-output-through- >pipelines.html >>>> >>>> >>>> On Wed, Apr 18, 2012 at 2:55 PM, Jakob Külzer ><[email protected]> wrote: >>>>> Hi, >>>>> >>>>> I'll have a look at these links, thank you. >>>>> >>>>> I agree that what I'm toying with is breaking the RESTfulness of >>>>> Sling, but at the end of the day we're not building RESTful webapps, >>>>> we're building consumer websites. Therefore REST is not that much of >>>>> an issue. >>>>> >>>>> However, the more I read about Sling, the more i realize I might be >>>>> approaching this the in the wrong way. But let's assume i'd be >>>>> building a mobile version using selectors, i'd have to ensure that all >>>>> rendered internal links have the appropriate selector attached, >>>>> otherwise a client would "break out" of the specific version of the >>>>> website. Does Sling support me with link externalization? >>>>> >>>>> Cheers, >>>>> Jakob >>>>> >>>>> On Wed, Apr 18, 2012 at 12:33 AM, maikhorma <[email protected]> >wrote: >>>>>> I'd suggest you take a look around in [1] and more specifically [2]. >>>>>> Even >>>>>> so, I think you're not getting a direct answer because you "url is the >same" >>>>>> requirement is not exactly in line with the fundamentals of sling. >>>>>> Specifically Sling is like a "RESTful" web service, and by definition if >>>>>> you >>>>>> want something different, then you use a different url. The focus is on >>>>>> content, so you have /content/stuff/myEntry, and if you want to view >it on a >>>>>> normal browser you go to .../myEntry.html, if you want it for mobile, >you go >>>>>> to myEntry.mobile, and if you want a summary, you go to >myEntry.summary >>>>>> (plus using whatever url constructs). Saying that "the url can't change" >>>>>> pretty much breaks a lot of the power of sling and forces you to put >>>>>> "if...else if..." somewhere to process other inputs like get parmeters. >>>>>> Also check out [3] since I think it does a decent job of utilizing sling >>>>>> to >>>>>> do the job rather than writing custom code. >>>>>> >>>>>> >>>>>> [1] http://sling.apache.org/site/the-sling-engine.html >>>>>> [2] http://sling.apache.org/site/dispatching-requests.html >>>>>> [3] http://sling.apache.org/site/46-line-blog.html >>>>>> >>>>>> -- >>>>>> View this message in context: http://apache- >sling.73963.n3.nabble.com/Using-Filter-and-RequestDispatcher-to-substitute- >responses-tp3918391p3919064.html >>>>>> Sent from the Sling - Users mailing list archive at Nabble.com. >>>>> >>>>> >>>>> >>>>> -- >>>>> Cheers, >>>>> Jakob >>> >>> >>> >>> -- >>> Cheers, >>> Jakob > > > >-- >Cheers, >Jakob
