Blogging Roller

Dave Johnson on open web technologies, social software and software development


Roller 5 and Java EE 6

It's hard to believe, but I've been dorking around with Roller, the blog software that powers this site, for almost 10 years now. I started in summer 2001. In the past couple of years, I've had a lot less time to work on Roller. I devoted some of that time to mentoring student developers, which was fun and rewarding. I also spent time making Roller more consumable for developers by making it easier to build, run and deploy to modern Java app servers, which was not really fun but was definitely educational, bloggable even.

[Read More]

Apache Roller 5.0 RC3

On the last day of 2010, I made available the third release candidate for Apache Roller 5.0. The main difference between this new candidate and the previous one is that the new RC3 runs on Java EE 6 servers: Glassfish 3, JBoss 6 and Websphere 8 (currently in beta). Making this happen took a lot more work than I expected and I'll blog about that over the next couple of weeks as it is an interesting case study in Java EE 6 portability.

Here's the announcement:

Apache Roller 5.0 Release Candidate RC3 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:
   https://cwiki.apache.org/confluence/display/ROLLER/What's+new+in+Roller+5.0

   Change list (issues resolved since 4.0)
   http://bit.ly/gAhDWR

   Issues resolved since last release candidate (RC3)
   http://bit.ly/dZ27Nx

   Signed binary and source files. Also, documentation in PDF form
   http://people.apache.org/~snoopdave/apache-roller-5.0/

The biggest change in RC3 is the new support for Java EE 6 application
servers: Glassfish 3, JBoss 6 and Websphere 8 (beta). I've been able
to verify that Roller runs on all of those servers, and I updated the
installation guide to explain in detail how you install on Glassfish,
JBoss and WebSphere.

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

Thanks,
Dave
That announcement is available here: http://markmail.org/message/my5wbld2xqvhqpyg

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 http://s.apache.org/apacheroller50rc2):

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:
   https://cwiki.apache.org/confluence/display/ROLLER/What's+new+in+Roller+5.0

   Roller 5.0 JIRA change list:
   https://issues.apache.org/jira/sec ... sion=12313828

   Signed binary and source files
   http://people.apache.org/~snoopdave/apache-roller-5.0/

   Issues resolved since RC1:
   http://bit.ly/9eWjJk

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.


Software has feelings too

Be nice to your software ;-)

Unfortunately, she's right on the money with that remark.


MarsEdit 3 and Roller 5

MarsEdit3Icon128.png

Mac-based weblog editor MarsEdit v3.0 has just been released by Red Sweater Software.

Because MarsEdit v3.0 supports the Atom Publishing Protocol (APP), it works with Apache Roller 5.0RC1's new and improved AtomPub support right out of the box. I'm writing this post in MarsEdit right now and publishing to Roller 5 via APP.

MarsEdit includes a rich text editor and supports image upload via drag-and-drop into the editor. You can edit a draft post locally or use Send to Blog to send the draft to the server for further editing before publish. You can specify multiple tags for your post and MarsEdit will send them to Roller as tags.

Generally, I prefer to edit my HTML by hand but for somebody who wants simplicity and a familiar Mac interface, MarsEdit v3.0 looks like a great choice. And the HTML it generates doesn't look too bad.

Here's a screenshot that shows what MarsEdit looks like when editing a post:

marsedit-roller.png

Here are the settings I'm using (URLs changed to protect the innocent).

marsedit-settings.png

MarsEdit is $39.95 and there's a 30-day free and fully-function trial version available too.

Tags: atompub

Apache Roller 5.0 RC1

It's been a while since the BETA (over 6 months) but we now have a release candidate for Apache Roller 5.0 available for testing. This site is running Apache Roller 5.0 RC1 right now, as you can see in the itty bitty screenshot below:

Here's a What's New in Roller 5.0 page that summarizes what has changed since 4.0. One thing I forgot to mention on that page was that Roller now uses ROME Propono 1.0 for AtomPub and Roller 5.0's AtomPub support has been successfully tested with MarsEdit and Windows Live Writer.


Roller on OpenSolaris / Glassfish

Dave Koelmeyer offers a nice step-by-step guide to getting Roller up and running on OpenSolaris, Glassfish and MySQL.

Although WordPress undoubtedly has more bells and whistles, with themes and plug-ins galore, I find Roller quicker and less fussy in operation, with far more comprehensive documentation – and its scalability cannot be denied. This guide will enable you to install and run Apache Roller for the purposes of evaluation and tinkering.

We will be using OpenSolaris snv_134 x64, with Apache Roller 4.01, Glassfish v2.1, and MySQL 5.1.

Link

Built with Maven

Maven Logo

I was a Maven hater and resisted it for a long time but over the years Maven has gotten much better, it's well supported in IDEs and as far as I can tell, Maven has replaced Ant as the de facto build system for Java projects. If you want new developers be able to easily build, debug and run your code via command or their favorite IDE then Maven is the way to go, and that's especially true for open source projects like Roller.

That's why I spent a couple of weekends learning Maven and converting Roller's build process from Ant to Maven (ROL-1849). The process of conversion wasn't too difficult. Getting dependencies under control was a pain, but it believe it will be a one time pain and a worthwhile one. What took the most time was figuring out how to get Maven to start Derby, create the Roller tables and then run Roller's JUnit tests. Also, getting Maven's Jetty plugin setup to run Roller was a little tricky but hopefully also a one-time pain. The result is that Roller now uses a standard and well known directory structure, dependencies are managed and it's easier for developers to get started with the codebase.

If you have Maven and Subversion installed on your computer then these commands will fetch the Roller source code, compile the code, run all JUnit tests and then build the Roller webapp:


   svn co https://svn.apache.org/repos/asf/roller/trunk roller_trunk
   cd roller_trunk 
   mvn install

And once all that is done, the following commands will start the Jetty app server, start the Derby database and start Roller at http://localhost:8080/roller, ready for testing, experimentation, etc.


   cd weblogger-web
   mvn jetty:run-war

I think that's pretty damn useful.

Here are some articles/links that influenced my thinking on Maven recently:

  • Comparing Build Systems - Adrian Sutton concludes that Maven is too much work but "the consistency in how a project is built that the Maven project has brought to the Java would is absolutely revolutionary"
  • Maven in our development process - Sherali Karimov explains how Atlassian and says the need for Maven training is "the most important and most overlooked issue of all."
  • Sonatype - The Maven Company. Founded in 2008 by Jason van Zyl, the creator of Maven. Offers training, support and the Nexus Professional repo manager.
Tags: ant java maven

Roller Beginner's Guide available

photo of beginner's guide to Apache Roller 4.0

I blogged about Alfonso Romero's Apache Roller 4.0 Beginner's Guide book before. It's a great resource for folks who want to get the most out of their Apache Roller-based blogs, and not just beginners. As you can see in the photo on the right, I've got my copy. You can get yours directly from Pakt publishing:

Buy a copy of Beginner's Guide to Apache Roller 4.0

To publicize the book, Pakt publishing has been publishing some useful excerpts and even a complete sample chapter online. Here's summary of the excerpts so far:

If you've been following Roller development you know that Roller 5.0 is on the way. Most of the changes in Roller 5.0 are "under the hood" so 5.0 won't make Alfonso's book obsolete. Except for a couple of pages in Chapter 5 "Spicing Up Your Blog" that need updated screenshots, I believe everything in the book applies to Roller 5.0 as well.


Apache Roller 4.0 Beginners Guide

Here it is:

<img src="http://rollerweblogger.org/project/mediaresource/b32e1401-5ada-4d39-84de-2c8482358f87" alt="Roller book cover" style="padding:4px; align:center" />

Isn't that cool? An actual book on Apache Roller and I did not have to write it. I did review the drafts and it looks good, especially for beginners. It's filled with helpful step-by-step instructions and screenshots. I also submitted a forward, but I don't have a copy of the final book yet so I'm not sure my text made it in (I'd love a hard copy... hint hint). Anyhow... big congratulations to Roller user and author Alfonso Romero.


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.


OAuth for AtomPub in Roller

powered by Roller badge

Over the past month or so I've been adding OAuth support to just about every open source project that I can commit to. I added OAuth support to Roller so that you can now use OAuth to protect Roller's AtomPub server and other things. I also added OAuth support to ROME Propono's AtomPub client so you can now use Propono to post to Roller (more about that later). Here's a quick overview of how OAuth in Roller works.

NOTE that this post applies to Roller 5.0, which has not yet been officially released.

Setting up OAuth for AtomPub in Roller

If you want to use OAuth with AtomPub on your Roller site, go to the Server Admin page and find the Web Services section, enable AtomPub and specify 'oauth' as the authentication mechanism, like so:

<img src="http://rollerweblogger.org/roller/resource/rol_oauthconfig.jpg" alt="OAuth config in Roller 5.0-dev" />

Getting your OAuth key, secret and URLs

Once you've done the setup, you'll find an OAuth Credentials link on the Roller Main Menu page, which will lead you a page like the one below showing your OAuth consumer key & secret and, if you are a site admin user, the site-wide key & secret. Currently, there's only one set of site-wide credentials; I plan to fix that.

OAuth keys page in Roller 5.0-dev

Of course, those aren't my real keys. You'll want to keep your OAuth keys secret as they can enable anybody to access your Roller account via AtomPub.

Want to try it yourself?

I mentioned that Roller 5.0 has not yet been released and that's true. There's still a lot of work to be done on 5.0, but that doesn't mean you can't get your hands on the code and binaries now. To make it easy, I've made an unofficial snapshot version of Roller 5.0-dev available for testing purposes only. It's what I'm running on my site. You can get it here in two flavors:

apache-roller-5.0-dev-20090321-SNAPSHPOT.tar.gz (31 mb)

apache-roller-5.0-dev-20090321-SNAPSHPOT.zip (31 mb)

The instructions in the old Roller 4.0 installation guide should work fine, so follow them to install and configure the 5.0-dev SNAPSHOT. Please send questions and feedback to either the Roller dev mail list and I'll do my best to respond there.

You'll also need an OAuth capable AtomPub client. More on that topic tomorrow...


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.

Tags: apacheroller

Roller 4.0.1 bug fix release available

<img src="http://rollerweblogger.org/roller/resource/roller-cartoon-140x126.png" alt="roller logo" align="right" />

Here's the announcement from the Roller project blog:

It's been over a year since our last Roller release and we've fixed a couple dozen bugs in that time including an XSS vulnerability reported recently by Secunia.com. Now those fixes are available as an official Roller release, 4.0.1

This is a bug-fix only release with no new features.

Wondering what's next for Roller? I'm going to push for a Roller 5.0 release in Spring 2009, as we've got good stuff in the trunk and more on the way, but I'm going to need your help to get there. More about that later.

Tags: roller

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 blogs.sun.com 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 blogger.com-like 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?

Tags: apacheroller

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.

<img src="http://www.w3.org/Icons/valid-xhtml10-blue" alt="Valid XHTML 1.0 Transitional" height="31" width="88" />

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.


Details of Roller setup at blogs.sun.com

Meena Vyas, Murthy Chintalapati and Allen Gilliland just published an article on BigAdmin that describes the architecture of blogs.sun.com, 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

<img src="http://rollerweblogger.org/roller/resource/bsc-architecture.png" title="blogs.sun.com architecture" alt="diagram" />

What's up with Roller?

I've been neglecting my Blogging Roller duties, no doubt, but Roller work continues albeit at a slower pace. If you want the official word on Apache Roller status and progress then check the project's reports to the ASF board. I just added links to the most recent three reports to the Roller project blog. Here's a summary of those reports lifted right from the blog:

August 2008 Board Report

The Apache Roller project's latest report to the ASF board is available here: August 2008 Board Report. Highlights include some commentary about community health, OpenID support via the Google Summer of Code and a new project to improve Roller's Media Bloggingout facilities.

May 2008 Board Report

The Apache Roller project's latest board report is available here: May 2008 Board Report. The highlights include the completion of new Externalized User Management and Tag Data API work for Roller 4.1.

February 2008 Board Report

The Apache Roller project reports status on a quarterly basis and the latest report is now available here: February 2008 Board Report. Highlights from the report include the release of Apache Roller 4.0 and work towards a proposal for Roller 4.1.

Tags: status

« Previous page | Main | Next page »