Blogging Roller
Dave Johnson on open web technologies, social software and Java
Dave Johnson on open web technologies, social software and Java
Above: a random selection of photos from my Flickr photo-stream.
I made some progress in Rollarcus over the past couple of weekends, but not a lot. This makes me wonder how I ever found the "nights and weekends" to get Roller started in the first place, but that's a different topic.
What I've done so far in Rollarcus is to simplify things. While I was at Sun, we split Roller up into a number of parts: a weblogger part for blogging, a planet part for RSS/Atom aggregation, a core part for things common to both. After Sun, I worked to move Roller to Maven and further split things up into a total of 9 Maven modules including an assembly for building the release. Now, I think that all these modules are unnecessary -- we never shipped a Roller-Planet application and nobody wants to use parts of Roller -- and even if they did, the modules did not really help.
Here's the before view: apache/roller
Here's the after view: snoopdave/rollarcus
So, in Rollerarcus, I've merged all the modules. Except for one "test utilities" module, all Java code, JSPs and other code is now in one module and much easier to deal with. Next, I'm going to attack the (what I consider to be) unnecessary dependencies and drastically reduce the number of jars in WEB-INF.
I just forked Roller on Github.
The new project is called Rollarcus and is mostly just an experiment and, I hope, a learning experience. I've got some ideas about stripping Roller down to it's core and making it more fun and easy to develop and deploy. We'll see how far I get.
I just upgraded this site to Roller 5.1-dev, Subversion rev 1175172. This unreleased version of Roller includes new mobile theming capability (mentioned in my previous post), allowing a theme to define both a standard and a "mobile" version of each weblog page. I haven't added mobile pages for my blog yet, but that is what I plan to do next.
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.
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.
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.
Tags: gsoc google opensource mobile apacheroller
Here's some more happy Roller news. Apache Roller 5.0 has been released!
The major new feature in Roller 5.0 is Media Blogging, a set of enhancements to Roller's file upload and management capabilities. Also included in 5.0 are simple multi-site support, OpenID and OAuth support for Roller's AtomPub interface. All major dependencies have been updated and Roller now uses Maven for build and dependency management. You can find a summary of Roller 5.0's new features
on the Roller wiki.
The road to Roller 5.0 has been a long one and if you are interested the history, you might want to check Dave Johnson's What's New in Roller 5.0
presentation from ApacheCon US 2009. Roller 5.0 includes contributions from contributors from Google Summer of Code, San Jose State Univ. and the usual case of Roller committers. Thanks to all who contributed to Roller 5.0 over the years.
To download Apache Roller 5.0 and documentation, visit the Apache Roller download page
at the Apache Software Foundation's website.
Tags: opensource apacheroller asf
Here's some happy news. A new committer has joined the Apache Roller project. Shelan Perera has been helping out on the mailing lists, submitting fixes and recently won a Google Summer of Code (GSOC) project to add mobile blogging features to Roller. He was nominated for committer-ship and voted in on May 5, 2011.
Shelan's GSOC project is to add mobile theming capabilities to Roller. You can find the Mobile Theming for Roller
proposal on the GSOC website. Shelan is seeking feedback on requirements and design for the project, and keeping the community in the loop by running a blog to journal his progress: Apache Roller Mobile Platform
.
Welcome Shelan!
In my quest to get Roller running on the latest in Java EE servers, the last server I tacked was the WebSphere Application Server. Unlike Glassfish and JBoss, WebSphere's Java EE 6 offering is not available in final form yet. Java EE 6 support is coming in WebSphere 8. So, for this exercise I used the WebSphere 8 beta, which was made available in July 2010. In this blog I'll describe how I approached the problem what I learned along the way.
In my quest to make Roller work on Java EE 6, the next server that I tackled was JBoss 6. In this blog I'll describe how I approached the problem what I learned along the way.
Roller uses JPA for database storage and specifically the Apache OpenJPA implementation. I knew that JBoss uses the Hibernate JPA implementation and I suspected that there would be JPA portability problems, so I decided to run Roller's JUnit tests against Hibernate JPA. There were many test failures and fortunately, the failures were easy to fix.
[Read More]In my quest to make Roller work on Java EE 6, the first server that I decided to tackle was Glassfish 3. In this blog I'll describe how I approached the problem and what I learned along the way.
Roller uses JPA for persistence and specifically the Apache OpenJPA implementation. I knew that GlassFish uses the EclipseLink JPA implementation and I suspected that there would be JPA portability problems, so I decided to run Roller's JUnit tests against EclipseLink JPA. I wanted to find and fix those problems before even touching GlassFish. The tests ran and there were many JPA related failures and errors, most due to differences in the way that EclipseLink handles bi-directional relationships and the use of unmanaged objects.
[Read More]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]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, DaveThat announcement is available here: http://markmail.org/message/my5wbld2xqvhqpyg
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.
Tags: apacheroller asf
Be nice to your software 
Unfortunately, she's right on the money with that remark.
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:
Here are the settings I'm using (URLs changed to protect the innocent).
MarsEdit is $39.95 and there's a 30-day free and fully-function trial version available too.
Tags: atompub
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.
Dave Koelmeyer offers a nice step-by-step guide to getting Roller up and running on OpenSolaris, Glassfish and MySQL.
LinkAlthough 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.
Tags: glassfish opensolaris
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:
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.
Tags: blogging opensource java
Here it is:
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.
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.
Tags: apachecon apacheroller