Posts tagged 'apacheroller'

Roller 6.0.0-SNAPSHOT

Upgraded this site to Roller 6.0.0-SNAPSHOT today, which meant an hour of fiddling around with my private Docker registry, then giving up and using the one free private repository offered by DockerHub and then, another hour of futzing around trying to figure out my PostgreSQL JDBC driver doesn't work anymore (I inadvertently upgraded from JDK 1.7 to 1.8) and why I can't seem to upgrade it (Kubernetes caches Docker images unless you set imagePullPolicy to always). In the end, I got it working. This post is written in the yet to be officially release Apache Roller 6.0.0-SNAPSHOT version.

Side note: the new rich-text editor in Roller is now Summernote and it seems quite nice. I need to tweak it a bit because there is currently no way to set the font or add a link unless you switch to raw HTML mode.

10 years ago today

O'Reilly logoTen years ago on this day, O'Reilly published an article that I wrote called Building an Open Source J2EE Weblogger, the article that introduced the Roller weblogger (now known as Apache Roller) to the world. It changed my career and my life in a bunch of nice ways and 10 years later I'm still benefiting from my choice to create Roller and write that article. So you can get a taste of the times, here's the intro:

Building an Open Source J2EE Weblogger: As a Java developer, you should be aware of the tremendous wealth of open source development software that is available for your use -- even if you have no desire to release any of your own software as open source. In this article, I will introduce you to some of the most useful open source Java development tools by showing you how I used these tools to develop a complete database-driven Web application called Roller.

Roller fits into the relatively new category of software called webloggers: applications that make it easy for you to maintain a weblog, also known as a blog -- a public diary where you link to recent reading on the Web and comment on items of interest to you.

The Roller Web application allows you to maintain a Web site that consists of a weblog, an organized collection of favorite Web bookmarks, and a collection of favorite news feeds. You can define Web pages to display your weblog, bookmarks, and news feeds. By editing the HTML templates that define these pages, you have almost total control over the layout and appearance of these pages. Most importantly, you can do all of this without leaving the Roller Web application -- no programming is required.

I've written and talked about Roller and the history of Roller numerous times. If you're interested in learning more about it here's my most recent Roller presentation, which covers Roller history in some detail:

These days, Roller isn't really thriving as an open source project. Wordpress became the de facto standard blogging package and then micro-blogging took over the world. There are only a couple of active committers and most recent contributions have come via student contributions. Though IBM, Oracle and other companies still use it heavily, they do not contribute back to the project. If you're interested in contributing to Roller or becoming part of the Apache Software Foundation, then Roller needs YOU!.

GSOC 2011: Mobile-enabled themes for Roller

I'm going to break blog silence now to tell you about Apache Roller and Google Summer of Code 2011, which just wrapped up about a week ago.

GSOC logo

This year we were very fortunate to get a another highly motivated and smart student, Shelan Perera, and an good proposal as well: Mobile-enabled Templates. Over the summer Shelan designed and implemented a new feature for the Roller blog server, one that enables theme authors to provide an alternative "mobile" template for each page template in a Roller blog theme. You can see a screenshot of the new Edit Template page in Shelan's blog How to change template codes in Roller.

Now, when a page request comes into Roller, Shelan's code determines if it's from a mobile device and, if it is, switches to a mobile template, if one is available. There's also an easy way for template authors to create a button to allow users to switch to the "Standard" site instead of the mobile version. The screenshot on the right, of Roller with a mobile theme comes from Shelan's most recent blog.

screenshot of a mobile Roller theme

It was an honor to act as mentor for this project, and fun talking to Shelan via Skype most Fridays. I'm looking forward to getting this on my blog, and getting this cool new feature into an Apache Roller 5.1 release sometime soon. Thanks, Shelan! And, thanks to Google for running the most excellent Summer of Code program.

Apache Roller 5.0 released


Apache Roller 5.0 RC2

A couple of weeks ago, I made a second release candidate available for Apache Roller 5.0. Here's the announcement (also available at

Apache Roller 5.0 Release Candidate RC2 is now available for testing. 
Note that this is NOT a release of the Apache Software Foundation or 
anybody else; this release candidate is for testing purposes only and 
not recommended for production.

   What's new in Roller 5.0:'s+new+in+Roller+5.0

   Roller 5.0 JIRA change list: ... sion=12313828

   Signed binary and source files

   Issues resolved since RC1:

If you would like to help out then please test RC2, discuss 
the problems you encounter here and file specific bugs with steps to
reproduce in the Roller JIRA bug tracking system.

I'm running RC2 on this site and it seems to be holding up just fine so far.

The Jazz Connection

Here's something I've been closely involved with during my entire IBM career (almost 9 months now): making software development more social by integrating Rational Team Concert and Lotus Connections.

In case you don't know, Team Concert is Rational's "complete agile collaborative development environment" with integrated source code control, issue tracking, build management and very slick Eclipse and web-based client UIs -- it's a collaborative environment for software developers. Lotus Connections is IBM's comprehensive social software suite with blogs (Roller based!), wikis, social bookmarking, forums, file sharing, social networking and more -- an environment for more general collaboration.

IBM partner Mainsoft has developed an integration between Team Concert and Connections and it's now available as a tech preview. The product makes it easy for developers to hook a a software development project up to a Lotus Connections and enable software developers to collaborate with the much wider community of folks involved with a software project including end users, subject matter experts, executives and other stakeholders. As you can see from the list of features, it's a pretty tight integration.

If you want to learn more about the integration, check out the links I referenced above. There's also a short podcast available at Developer Works and there will be sessions at Lotusphere 2010 this month and (with luck) at Rational's Innovate 2010 Conference in June.

Trip report: ApacheCon US 2009


Trip report: Social Web Camp, Santa Clara, CA


Roller status, CC: world

It's been a while since I have blogged about it, but I haven't completely stopped working on Roller. In case you're wondering what's up in Roller-land, here's an update based on an email I recently sent to the Roller dev mailing list.

I've been doing some weekend and evening work on Roller 5.0 to get it ready for release. Ganesh and Tanuja did great work on the new Media Blogging features, but there were a couple of significant pieces missing such as data migration and I18N. I had hoped to finish that work during the summer, but life got in the way. Now I'm scrambling to wrap things up. I'll be speaking at ApacheCon US 2009 in November on the topic of What's New in Roller 5.0, so I'd really like to have a 5.0 release candidate ready by then.

Just as a reminder, here's what's currently on the 5.0 feature list:

  • Media Blogging Support
  • Externalizable User Management
  • OpenID Support
  • Tag Data API
  • OpenSearch
  • OAuth for AtomPub
  • See the full list on the Roller wiki

Except for Media Blogging, all of those features are complete. My plan is this. I'll do some more cleanup work on Media Blogging, which is the major new feature in 5.0, fix some bugs and then I'll cut an RC.

Media Blogging for Roller

For the past five months I've had the pleasure of mentoring two San Jose State Univ. graduate students, Ganesh Mathrubootham and Tanuja Varkanthe, who are working on a project for classes CMP 295A and B. They picked one of the projects that I first proposed for Google Summer of Code and then for Glassfish's student outreach program, Media Blogging for Apache Roller. It's turned out to be a major project and the central new feature in the upcoming Roller 5.0 release. [Read More]

Welcome Ganesh!

From the Roller project blog:

Ganesh Mathrubootham has been doing great work on the Media Blogging for Roller project and helping out in other ways in Roller development and support. So in January we nominated and voted him in as Roller's newest committer. Welcome Ganesh, we're very happy to have you on the team.

I've really enjoyed working with Ganesh and his project partner Tanuja over the past six months, so this is great news. I'll tell you a bit more about the Media Blogging for Roller project in one of my next blog posts.

Upcoming: Shindig for Blogs and Wikis, ApacheCon EU

The other day I got the happy news that my one of my proposed sessions was accepted for ApacheCon EU. ApacheCon and Amsterdam are definitely among my favorite places to be, so I'm thrilled. You ought to go too; here's the information on the conference, which will include training, the hackathon and a BarCamp.

ApacheCon Europe 2009 (link)

23-27 March 2009 | Mövenpick Hotel, Amsterdam
Pricing (register before Feb 6 for discount)

My session is titled Shindig for Blogs and Wikis. I'll cover different approaches to adding social features to blogs and wikis and I'll zoom-in on OpenSocial related options Shindig and Project SocialSite. Here's the abstract, with some formatting that is missing from the ApacheCon site:

Blogs, wikis and feeds helped to make the web more social by making it easy for folks to read, write and have conversations on the web; and now social networking technologies are making the web and even more social.

In this session you'll learn about OpenSocial, a new standard for interacting with social networking data via Web Service and via JavaScript Gadgets that can be embedded into social networking sites. You'll learn about Apache Shindig (incubating), which is the reference implementation of OpenSocial, and how it can be used to add support for social networking and gadgets to existing web applications and specifically Apache Roller and Apache JSPWiki. The session will cover:

  • Quick introduction to OpenSocial and Shindig
  • Overview of products/services that leverage OpenSocial
  • Benefits of social networking in blogs and wikis
  • How to support Google Gadgets in Roller and JSPWiki via Shindig
  • How to enable social features in Roller and JSPWiki via Shindig
  • How to add comprensive social graph support to Roller and JSPWiki via SocialSite
  • How to create an OpenSocial Applications that access Roller and JSPWiki

I'm already working on the demos and slides for this as it's going to be quite a bit of work. Fortunately, I'll be able to recycle some of the material in some other upcoming gigs.

More about Fauxcoly

Fauxcoly is a new Roller theme that I designed over the winter break and the one that you see here on this blog. I wanted a new theme that's simple, easy to maintain, exposes my non-blog activities like Twitter, explains itself and takes full advantage of Roller theme system. This post explains the design and how to try the theme out. [Read More]

Eclectic Roller hacks

Sun's CTO for UK and Ireland, Wayne Horkan, is a bit of a Roller hacker, and I mean that in the nicest way possible ;-) His blog has always been a showcase for what you can do with Roller template programming, although recently he has adopted a more simple and clean design. Wayne just posted a set of three interesting and useful Roller hacks on his blog Eclectic:
  • New next-previous macro: this one is useful for showing a reader where they are in a blog, which post they are reading and the names of the next and previous posts; sorta like the "current location" sidebar in Greg Reimer's theme.
  • Related entries: this is designed for use on an individual entry page and shows entries that are related to the entry being viewed based on tag and category relationships. This is an especially good hack because the code is a little scary; it iterates through the most recent 1000 posts in the entry's category, then the most recent 1000 entries in any category and then it does some analysis. I suspect this gives a bit of a workout, but it's serving four million hits/day at 97% idle so that should be no problem, no?
  • Archive macro: this one shows a list of links to recent month's entries. Would be a little nicer if it displayed a count of entries for each month, but I don't think that's possible with Roller's current template system and models.

Nice stuff. Have you got any Roller hacks to share?

Fauxcoly and XHTML

Believe it or not, I've never created an XHTML theme for Roller and I didn't even notice the XHTML declaration when I put my new theme (which I'm calling Fauxcoly) together. I did notice when I got over 400 validation errors from the HTML validator. So, I worked for a couple of hours last night to fix the errors both in my new theme and in my most recent weblog entries. I also had to fix a couple of Roller bugs, which need to be reported.

Now the main pages of my blog validate and I'm brave enough to put this in the theme's footer.

Valid XHTML 1.0 Transitional

Having a theme that supports XHTML isn't enough, of course. You also have to ensure that each blog entry is well formed and comments too. Unfortunately, we don't have great infrastructure for that in Roller (yet).

I still plan to release the theme in packaged-theme form, but only after I XHTML-ize it too.

New Year and new theme

Happy New Year 2009 to one and all! I took a nice long break from work, complete with a Florida vacation, hot tubbing, theme parks and a mini-vacation to rest-up from the main vacation and now I'm back. I think I'm rested and ready to restart some things including work, of course, and this blog.

Restarting a blog is not easy, or so I've heard. Here's what I did. I drew a big diagram on the white board with multiple colors, circles and arrows. I did some calculations and eventually figured out that what I need is a new theme. A little bit of eye candy for the couple of folks who end up here after a search gone wrong or accidentally clicking through as they skim over my blog in Google Reader; that's just what will re-ignite my blogging activities. My problems all have technological solutions. Funny how that works.

So, if you've clicked through to my blog then you're looking at my new theme and newly restarted blog. Thrilling, huh? It's a simple faux-column deal like my old theme, but this time I'm taking advantage of Roller's new 'action' pages, I'm using YUI Grids CSS to define the layout and I'm including content from my other sites (Twitter, Flickr, Delicious, etc.) via aggregation. I'll provide some more details about the theme and it's features (and a download) in a subsequent post, after I've gotten some real work done.

Details of Roller setup at

Meena Vyas, Murthy Chintalapati and Allen Gilliland just published an article on BigAdmin that describes the architecture of, a Roller, Sun Web Server, Memcached and MySQL based site that averages 4 million hits a day with its two SunFire T2000 servers at 97% idle. You can get the article for free (registration required) here: Sun Blogs: A Sun Java System Web Server 7.0 Reference Deployment


Social Roller

We demonstrated the Project SocialSite widgets in Roller at JavaOne, but we didn't show much other than just the basic widgets. We modified a Roller front-page theme to include a people directory, added a profile page for each user and slapped the widgets on the page. It was pretty rough, as you can see on the right, like our other SocialSite demo vehicles.

This week, I'm working to put together a much better demonstration, something useful enough to deploy to our internal blog site at Sun. Since I have limited time and I really need to get back to working on the SocialSite widgets and web services, I've been thinking about minimum set of features needed to add some value. Here's what I think we need:

  • Landing page: shows activities of your friends and groups, your inbox of social requests and place for you to update your status. This could be added to Roller's Main Menu page or to pages of the Front Page blog, which is my preferred option.
  • Personal profile page: shows your mugshot and the subset of your profile information that the viewer is allowed to see. Shows your activities and the OpenSocial gadgets you have installed. This could be done in the pages of each user's blog, which would give folks complete control of profile layout via page templates. Or I could be done in the pages of the Front Page blog.
  • Activity per entry or comment: whenever you publish a weblog post, or comment on one, an entry will be added to your activity feed so that your friends can see what you're doing. This will be implemented as a feature of a Roller-specific OpenSocial Gadget.
  • Protected entries: ability to publish blog entries that are visible only to your friends via the Roller Gadget.

Most of the above items should be pretty easy with the SocialSite widgets, but I'm sure I'll run into a snag or two at least. I always do. I'll post again next week and let you know how far I got.

Main | Next page »