In this talk, we'll cover the features of Apache Roller 5.0, and how it compares to other blog server options. We'll also look at typical deployment architectures, and examples of Roller sites in production today. The talk will discuss in detail some of the ongoing, student-driven work on OpenID and on better Media Blogging support.
http://www.us.apachecon.com/c/acus2009/sessions/280
1. What’s new in
Apache Roller 5.0
Dave Johnson
VP Apache Roller at ASF
Web 2.0 Architect at IBM
ApacheCon US 2009 - Oakland, CA
Tuesday, November 24, 2009
2. Agenda
• Roller overview
• Story of Roller up to 5.0
• Development of Roller 5.0
• New features in 5.0
• Roller Project Status
• What’s comes next?
Tuesday, November 24, 2009
4. Apache Roller is the open source Java blog
server that drives Sun Microsystem's
blogs.sun.com employee blogging site, the US
Government's blog.usa.gov, the blogs in IBM's
Lotus Connections product, the IBM Developer
Works blogs, the Javalobby's 10,000 user strong
JRoller Java community site and hundreds of
other blogs world-wide. If you want to set up a
blog server for yourself or for several thousand
of your closest friends, try Roller!
http://rollerweblogger.org/project/
Tuesday, November 24, 2009
5. Feature overview
* Wordpress Mu and Wordpress/Lyceum forks provide multi-blog
** LDAP plugin exists but is experimental and unsupported
Tuesday, November 24, 2009
8. Why choose Roller?
(Given the dominance of Wordpress)
• It’s the best open source blog server
option for the Java platform
• Can be made to work with just about
any relational database
• Can be made to work with just about
any Java application server
• Proven solution for large multi-user sites
Tuesday, November 24, 2009
12. started building something
Very early version of Roller, called Homeport at the time, under development in the HAHTsite IDE. 2001
Tuesday, November 24, 2009
13. worked nights, weekends
and some vacation days too
Alex and Linus Johnson taking an morning walk
at Ocraocoke Island, North Carolina - September 2001
2001
Tuesday, November 24, 2009
15. folks started to use it
“I am allowing others to use my
installation of Roller for their
weblogging. Hopefully this will
provide a means for
enhancing the Roller user
base as well as provide a nice
environment for
communication and
expression.”
Anthony Eden
August 8, 2002
2002
Tuesday, November 24, 2009
16. folks started to help
• Lance Lavandowska
• Matt Raible
• Mindaguas Idzelis
• Jaap Van Der Molen
• Anil Gangolli
• Henri Yandell
• and more...
2002-2004
Tuesday, November 24, 2009
19. Roller joined Apache
Proposal for Roller@Apache
Dave Johnson - Feb 28, 2005
We the committers and friends of the open source Roller Weblogger
project propose that the project become part of the Apache Software Foundation. The
rest of this document explains the rationale behind this proposal, how Roller meets the
Apache project scope, initial source, resources required, and initial committer criteria.
0 Rationale
Roller is an open source blog server written in Java and originally developed in 2002 for
an O'Reilly article titled Building an Open Source J2EE Weblogger. Now Roller is used
on multi-user blog servers at the Javalobby's JRoller.com (> 7000 blogs), Sun's
blogs.sun.com (>1000 blogs), and numerous other sites. Roller is an open source
product, available under an Apache-based license, with 5 committers. Recently Sun hired
the original author of Roller to develop Roller and other blog technologies. Sun and the
Roller developers want to ensure
Roller's continued success as a viable, growing, open source product. We think that
perhaps the best way to do this is to become an Apache project.
2005
Tuesday, November 24, 2009
20. Good times...
John Hoffman, Dave Johnson, Simon Phipps, Will Snow and Tim Bray in the back accept a Sun Microsystems 2005 Chairman’s
Award for blogs.sun.com and Humanizing the Corporation. Award winners Danese Cooper and Pat Chanezon not present.
Tuesday, November 24, 2009
21. Sun contributed a lot
Moved Roller to ASF AtomPub support
Roller 1, 2, 3 and 4 New template system
Group blogging New macro system
Planet aggregator UI overhaul
Pluggable rendering Theme packaging
Pluggable caching Easy install support
JPA back-end Memcached caching
Struts 2 migration And much more...
Configuration system
2004-2008
Tuesday, November 24, 2009
22. IBM started using Roller
• DeveloperWork:
external blogs
• BlogCentral:
internal blogs
• And in 2007,
launched Lotus
Connections
including Roller Early screenshot of Lotus Connections (code named “Ventura”) from Elias Torres personal blog
2005-2007
Tuesday, November 24, 2009
25. Roller Timeline
Lotus Connections
Join Graduate blogs.sun.com
Sun
ASF ASF
0.9.0 0.9.3 0.9.6 0.9.7 0.9.8 1.0 1.1 1.3 2.0 3.0 4.0 5.0 rc
Apr July Oct Apr Sep Jan April Oct Dec Nov Dec Oct
2002 2002 2002 2003 2003 2005 2005 2005 2005 2006 2007 2009
2.1 2.3 3.1 3.1.1 rc 4.0.1
Mar Nov Apr Nov Jan
2006 2006 2007 2006 2009
Bug fixes
Blogger API Performance Podcasts New URL system Bug fixes
OSCache Indexes, etc. Entry Atts New Template model
Group Blogs Multi-language blogs Media Blogging
Admin UI Spam Mgmt Superuser OpenID, OAuth
Multi-user Entry plugins Web UI redesign Tagging Multi-domain
Referrers Castor -> Hibernate New theme system
Full preview
Comment Mgmt
Pluggable Cache Theme stylesheets
Comments
Trackbacks Hibernate -> OpenJPA
MetaWeblogAPI Entry summaries Migrated to Struts 2
Day and month views AtomPub
Tuesday, November 24, 2009
27. Sun’s suite requirements
• Roller as one component of a suite
• Common user management
• So we made user management pluggable
• Single sign on support via Container
• So we made Spring Security optional
• Federated search
• So we added OpenSearch support
• AtomPub everywhere
• Integrated ROME Propono
2006-2007
Tuesday, November 24, 2009
28. SocialSite requirements
• Roller as demo vehicle for SocialSite
• OAuth for AtomPub
• Access to user information in macros
2007-2008
Tuesday, November 24, 2009
29. OpenID requirements
• A Google Summer of Code project
• By Tatyana Tokareva
• Implement OpenID
• With or without Spring Security
2008
Tuesday, November 24, 2009
30. Media Blogging Requirements
• A San Jose State Univ. student project
• By Ganesh Mathrubootham and Tanuja Varkanthe
• Media gallery
• Media file metadata
• Media file chooser
• Media file feeds
• Easy blogging of media files
• Include as image
• Include as podcast
2008-2009
Tuesday, November 24, 2009
31. Other requirements
• Multi-domain support
• Update all dependencies
• Fix bugs
Tuesday, November 24, 2009
33. OpenID support
• Support for OpenID logins via Spring Security
• new startup property authentication.openid
• Allowed values: disabled, hybrid and only.
http://cwiki.apache.org/confluence/display/ROLLER/Proposal+OpenID+Support
https://issues.apache.org/roller/browse/ROL-1733
Tuesday, November 24, 2009
35. Media Blogging
• Media file gallery browser with thumbnails
• Media file metadata and feeds
• Easy to add an image to a blog entry
• Easy to upload then blog images
Tuesday, November 24, 2009
40. Simple multi-domain
• One Roller instance serves multiple domains
• e.g. my site at rollerweblogger.org serves four domains via the
configuration below
# roller-custom.properties
weblog.absoluteurl.photophys=http://photophys.com
weblog.absoluteurl.alex=http://greenimp.me
weblog.absoluteurl.linus=http://linusjohnson.com
https://issues.apache.org/jira/browse/ROL-1670
http://cwiki.apache.org/confluence/display/ROLLER/Proposal+Simple+Multidomain+Support
Tuesday, November 24, 2009
41. OAuth for AtomPub
• AtomPub authentication options now:
• OAuth
• WSSE
• Basic
Tuesday, November 24, 2009
43. import com.sun.syndication.propono.atom.client.* Blog post
example
import com.sun.syndication.feed.atom.*
def authStrategy = new OAuthStrategy(
"roller", // username using Groovy
"55132608a2fb68816bcd3d1caeafc933", // consumer key
"bb420783-fdea-4270-ab83-36445c18c307", // consumer secret and ROME
"HMAC-SHA1", // key type
"http://blogs.example.com/roller-services/oauth/requestToken", Propono
"http://blogs.example.com/roller-services/oauth/authorize",
"http://blogs.example.com/roller-services/oauth/accessToken")
// get the AtomPub service
def appService = AtomClientFactory.getAtomService(
"http://blogs.example.com/roller-services/app", authStrategy)
// find workspace of my blog
def blog = appService.findWorkspace("Blogging Roller")
// find collecton that will accept entries
def entries = blog.findCollection(null, "application/atom+xml;type=entry")
// create and post an entry
def entry = entries.createEntry()
entry.title = "TestPost"
def content = new Content()
content.setValue("This is a test post. w00t!")
entry.setContent([content])
entries.addEntry(entry)
Tuesday, November 24, 2009
46. Project overview
• Project status
• Great new 5.0 release ready to go
• 7 committers, 3 recently active (none full-time)
• Last release: Roller 4.0.1, January 2009
• 4 active mailing lists, averaging 4 mails/day
• Issues
• Few active committers, small user community
Tuesday, November 24, 2009
50. Apache Roller 5.0
• Still have work to do
• Testing, debugging, fixing, voting and etc.
• We need your help!
Tuesday, November 24, 2009
51. After that?
• Speaking for myself; might be fun to...
• Build a new front-end?
• GWT, Dojo, OpenSocial Gadgets?
• Make Roller pluggable?
• New plugin architecture, OSGi, Maven?
• Help new contributors?
• Or maybe it’s time to move on.
Tuesday, November 24, 2009
52. Avoiding the attic
• If we want to
• keep Roller going
• be able to grow community
• be able to make releases
• Then
• we need a couple more PMC members
• we need you to participate
• we need you to contribute
Tuesday, November 24, 2009
53. How to help...
“The way to join the project is to subscribe to the
development mailing list and start acting like a
member ask questions, make suggestions, respond to
questions, propose changes and submitting fixes and
patches.
If you get along well with others, do quality work
and show some commitment to the project
somebody will most likely nominate you to be a
committer.”
From http://cwiki.apache.org/confluence/display/ROLLER/How+to+contribute+to+Roller
Tuesday, November 24, 2009
54. Conclusion
• We’ve got another great release ready
• But we’ve entered a new phase for Roller
• We’re community driven
• That means you
Tuesday, November 24, 2009