On Thu, Nov 17, 2011 at 11:04 AM, Vincent Massol <[email protected]> wrote: > > On Nov 17, 2011, at 10:55 AM, Thomas Mortagne wrote: > >> On Thu, Nov 17, 2011 at 9:57 AM, Vincent Massol <[email protected]> wrote: >>> Hi devs, >>> >>> Since we're going to use Maven POM metadata to display extensions in the >>> Extension Manager UI it's important that we have all data filled and with >>> correct value. >>> >>> Sergiu pointed to me that currently our website <url> are wrong. >>> >>> This is because the top level POM has <url>http://xwiki.org</url> and Maven >>> automatically suffixes it with artifact Ids. >>> >>> For example for Commons Component API this gives us: >>> >>> <url>http://xwiki.org/xwiki-commons-pom/xwiki-commons-core/xwiki-commons-component/xwiki-commons-component-api</url> >>> >>> which is not pointing to anything valid. >>> >>> I see 2 ways of fixing this: >>> >>> Solution 1 >>> ======== >>> >>> Do as I started this morning, i.e. set the <url> explicitly. For example >>> I've set PHP Macro module URL this morning to >>> <url>http://extensions.xwiki.org/xwiki/bin/view/Extension/PHP+Macro</url> >>> and Commons Observation API (the 3 modules: parent + api + local) to >>> <url>http://extensions.xwiki.org/xwiki/bin/view/Extension/Observation+Module</url>. >>> >>> Pros: >>> - Easy and we can point to wherever the documentation is located >>> >>> Cons: >>> - Tedious >>> - Fragile. If we rename a page on the wiki then the link is broken >>> >> >> -0. Not a big fan of this solution., way too much work. >> >>> Solution 2 >>> ======== >>> >>> Set the top level URL to something like: >>> >>> <url>http://xwiki.org/documentation?id=</url> >>> >>> For example for Commons Component API this will generate: >>> >>> <url>http://xwiki.org/documenation?id=/xwiki-commons-pom/xwiki-commons-core/xwiki-commons-component/xwiki-commons-component-api</url> >>> >>> Then: >>> * Have an apache redirection for /documentation to some wiki page such as >>> http://xwiki.org/xwiki/bin/view/Main/ModuleDocumentation >>> * Have the logic inside that page to transform paths (such as >>> "/xwiki-commons-pom/xwiki-commons-core/xwiki-commons-component/xwiki-commons-component-api" >>> into proper URLs). Since I don't think we can have a generic logic, I'd >>> simply put a big hashtable to start with. >>> >>> Pros: >>> - Simple, no need to modify all poms. We only need to change the top level >>> pom <url> value >>> - Much easier to keep up to date since when we rename pages all we need to >>> do is edit the ModuleDocumentation page. Actually when we support page >>> renames across wikis we could have the links in that page be automatically >>> renamed ;) With Solution 1, when you rename the URL you need to re-release >>> the module which is a big pain. >>> >>> Cons: >>> - I can't see any really :) We just need to be sure that >>> http://xwiki.org/documentation is available. >>> >>> So I'm definitely for 2, WDYT? >> >> Solution 3 >> ======== >> >> Set the top level URL to something like: >> >> <url>http://xwiki.org/documentation?id=${groupId}:${artifactId}</url> >> (maybe >> <url>http://xwiki.org/documentation?id=${groupId}:${artifactId}&path=</url> >> if we can't disable auto-completion). > > We can't disable auto-completion AFAIK - I've google it earlier today with no > luck (if by that you mean the fact that maven suffixes the base url with the > artifact ids). > >> And use the id to find the extensions page on extensions.xwiki.org >> instead of maintaining a map. > > It's mostly the same thing since we can extract the last segment in the path > + we'll still need to maintain a map since we don't have web page for all > submodules. For ex for the 3 modules in commons observation it's the same > documentation URL.
Assuming the artifactid is always unique and no other contrib extensions has a common part after ":" in its id. This solution is about resolving the page instead of having to maintain a static map, for the guy who will have to maintain this map it's very different :) No need to maintain a static Map for common documentations, better creating page on extensions.xwiki.org for them and redirect or put a link to the central right page. It's also possible to search for "xwiki-commons-component" when "xwiki-commons-component-api" can't be found, then try "xwiki-commons" etc. since this should work for most of them right now and for all of them when maven folder/id refactoring proposal from Sergiu will be implemented (because of the "s" we have sometimes in parent ids). > >> Pros: >> - same as Solution 2 plus no need to maintain a map ;) > > See above. > >> Cons: >> - the URL is not very nice > > Indeed, there's duplicated information. > > We could maybe add the groupId in the URL, **IF** variable expansion work in > <url>. I guess you tried it before proposing it right? Did not tried but I don't see why it would be the only place where maven variables don't work the same way. > > Thanks > -Vincent > >>> Thanks >>> -Vincent > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs > -- Thomas Mortagne _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

