Hi Dan, looks great! I also like that the new site passed the W3C validation and that it renders the images of our blog posts much nicer. I will try it out when it's online. I didn't know that INFRA has mandated this move. Are there some resources where I can read more about it?
Thanks for the time you spend on it, Christian On Wed, Mar 7, 2012 at 6:54 PM, Daniel Kulp <dk...@apache.org> wrote: > > As some of you are aware, the Apache Infrastructure team has mandated that > all projects move to the new svnpubsub process for publishing their > websites > by the end of the year. Camel (as are all Confluence based sites) is > affected by this mandate. We currently use a multi-step rsync process > where Confluence exports the space to HTML, that gets rsynced to an area on > people.apache.org once an hour. A cron process in someone's crontab on > people.apache.org then runs to rsync it to the appropriate place > (/www/camel.apache.org) once an hour or so as well. Then, another rsync > will sync from there to the live sites. This causes a lot of delays in > publishing (can be a few hours between change and live), but also involves > a > LOT of disk IO to sync things all over the place. The svnpubsub process > is > a lot faster as the site changes are committed to svn and anything that > needs it (the live site) can listen for the changes and update immediately. > > Anyway, over the last couple of months, a bit of work has been done with > various projects to start helping projects transition to svnpubsub. Joe > Schaefer has been working with the Maven folks so the "mvn site:deploy" > stuff can deploy via svnpubsub. Obviously the CMS uses it heavily. > > We also now have a "solution" for Confluence based sites based on work I've > done for CXF's site. Confluence has a SOAP interface for retrieving > information and rendering pages. Well, if I see a SOAP interface (even a > crappy one like Confluence's)...... ;-) > > Seriously, I have a program now that can render an entire confluence space > by using the SOAP API's and Velocity (which is what the current AutoExport > stuff uses, so migration is easy). However, it does more than that by > also > recording the modified times, checking the RSS feed for changes first, > tracking {children} and {include} tags, etc... Thus, if you change a page > that is "included" in another (think about the "Book in One Page" page), > those pages will also get re-rendered. If you add/delete a page, any > page > that uses the {children} tag to generate a tableof contents will > automatically re-render. > > It ALSO cleans up the resulting HTML via tagsoup and some custom cleanup > code. The Confluence generated HTML is aweful with invalid attributes, bad > links, etc... They are now "mostly" cleaned up. > > I've uploaded a "build" of the site to: > http://people.apache.org/~dkulp/camel/ > so you can see that the result is pretty much identical to the live site. > A couple of things are actually better such as the image links for the blog > entries. Also, the new page actually validates with the w3c validator: > > > http://validator.w3.org/check?uri=http%3A%2F%2Fpeople.apache.org%2F~dkulp%2Fcamel%2F<http://validator.w3.org/check?uri=http%3A%2F%2Fpeople.apache.org%2F%7Edkulp%2Fcamel%2F> > > > To run this, a buildbot build will be setup to run the process once an hour > to generate new html if it detects a change (rss feed). Once run, you get > a > commit message to the commits list and the changes are live immedately. > Thus, changes are now "at most" one hour till they are on the live site. > However, any commiter can checkout the stuff and run it manually if they > need/want things live immiately. > > > For CXF, this new process is now "live" (since Monday). I've filed a > ticket with INFRA to start the process for Camel. (requires a content area > in the web svn repo for the live content, then a buildbot build, then some > configs to make it all live) It's definitely still a "work in progress", > but it's a good start. For example, it doesn't track the blog/news > entries > so currently if you add a blog (for a release), you would need to manually > trigger an Index page update. However, the code is there so it's > something > we can add/enhance. I also want to update it to render pages in parallel > if > possible to make it a bit quicker. > > For camel, the main "pom" and scripts are in: > http://svn.apache.org/repos/asf/camel/website/ > and there is a README there. The code for the stuff is grabbed via an > svn:externals to the area in CXF so I just need to update the code in one > place: > http://svn.apache.org/repos/asf/cxf/web/ > I want to avoid "forking" the code as I *DO* know that if/when they move to > Confluence 4.x (currently on 3.4.x), it will need some updating as the SOAP > API's changes a bit. > > > Anyway, I'm hoping to have Camel flipped over by the end of the week or > early next week. > > BTW: if you are interested, it has to render 644 pages for the full Camel > website. Takes about 15 minutes to do right now, but like I said, once > it's all setup, it can do incremental updates which is MUCH quicker. 644 > pages is quite a bit. > > > -- > Daniel Kulp > dk...@apache.org - http://dankulp.com/blog > Talend Community Coder - http://coders.talend.com > >