Post on 11-May-2015
description
What’s new in Apache Roller 5.0
Dave JohnsonVP Apache Roller at ASFWeb 2.0 Architect at IBM
ApacheCon US 2009 - Oakland, CA
Tuesday, November 24, 2009
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
Roller Overview
Tuesday, November 24, 2009
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
Feature overview
* Wordpress Mu and Wordpress/Lyceum forks provide multi-blog** LDAP plugin exists but is experimental and unsupported
Tuesday, November 24, 2009
Deployment architecture #1
Tuesday, November 24, 2009
Deployment architecture #2
Tuesday, November 24, 2009
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
Story of Roller up to 5.0
Tuesday, November 24, 2009
While at HAHT Software
2001Tuesday, November 24, 2009
I learned about open source
2001Tuesday, November 24, 2009
started building something
2001Very early version of Roller, called Homeport at the time, under development in the HAHTsite IDE.
Tuesday, November 24, 2009
worked nights, weekends and some vacation days too
2001Alex and Linus Johnson taking an morning walk
at Ocraocoke Island, North Carolina - September 2001
Tuesday, November 24, 2009
made it free
2002Tuesday, November 24, 2009
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 EdenAugust 8, 2002
2002Tuesday, November 24, 2009
folks started to help
• Lance Lavandowska
• Matt Raible
• Mindaguas Idzelis
• Jaap Van Der Molen
• Anil Gangolli
• Henri Yandell
• and more...
2002-2004Tuesday, November 24, 2009
Sun joined the fun
2004Tuesday, November 24, 2009
I joined Sun
2004Tuesday, November 24, 2009
Roller joined ApacheProposal 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.
2005Tuesday, November 24, 2009
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
Sun contributed a lot
Moved Roller to ASF Roller 1, 2, 3 and 4 Group blogging Planet aggregator Pluggable rendering Pluggable caching JPA back-end Struts 2 migration Configuration system
AtomPub support New template system New macro system UI overhaul Theme packaging Easy install support Memcached caching And much more...
2004-2008Tuesday, November 24, 2009
IBM started using Roller
• DeveloperWork: external blogs
• BlogCentral: internal blogs
• And in 2007, launched Lotus Connections including Roller
2005-2007
Early screenshot of Lotus Connections (code named “Ventura”) from Elias Torres personal blog
Tuesday, November 24, 2009
2009Lotus Connections 2.5
IBM’s suite thrived
Tuesday, November 24, 2009
Sun’s suite never shipped
2006-2007Tuesday, November 24, 2009
Roller Timeline
1.0Jan2005
0.9.0Apr
2002
1.1April2005
0.9.8Sep2003
1.3Oct
2005
Sun Join ASF
2.0Dec2005
2.1Mar2006
3.0Nov2006
2.3Nov2006
3.1Apr
2007
4.0Dec2007
3.1.1 rcNov2006
4.0.1Jan
2009
5.0 rcOct
2009
Comment MgmtPluggable Cache
Spam MgmtEntry pluginsCastor -> Hibernate
Entry summariesDay and month views
TaggingNew theme systemFull preview
Theme stylesheetsHibernate -> OpenJPAMigrated to Struts 2AtomPub
Media BloggingOpenID, OAuthMulti-domain
Lotus Connections
blogs.sun.com
New URL systemNew Template modelMulti-language blogs
0.9.7Apr
2003
0.9.6Oct
2002
0.9.3July2002
Blogger APIOSCache
Admin UIMulti-userReferrers
PodcastsEntry Atts
PerformanceIndexes, etc.
CommentsTrackbacksMetaWeblogAPI
Bug fixes
Group BlogsSuperuserWeb UI redesign
Bug fixes
Graduate ASF
Tuesday, November 24, 2009
Development of 5.0
Tuesday, November 24, 2009
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-2007Tuesday, November 24, 2009
SocialSite requirements
•Roller as demo vehicle for SocialSite
• OAuth for AtomPub
• Access to user information in macros
2007-2008Tuesday, November 24, 2009
OpenID requirements• A Google Summer of Code project
• By Tatyana Tokareva
• Implement OpenID
• With or without Spring Security
2008Tuesday, November 24, 2009
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-2009Tuesday, November 24, 2009
Other requirements
• Multi-domain support
• Update all dependencies
• Fix bugs
Tuesday, November 24, 2009
New features in 5.0
Tuesday, November 24, 2009
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+Supporthttps://issues.apache.org/roller/browse/ROL-1733
Tuesday, November 24, 2009
Tuesday, November 24, 2009
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
Tuesday, November 24, 2009
Tuesday, November 24, 2009
Tuesday, November 24, 2009
Tuesday, November 24, 2009
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
OAuth for AtomPub
• AtomPub authentication options now:
• OAuth
• WSSE
• Basic
Tuesday, November 24, 2009
Tuesday, November 24, 2009
import com.sun.syndication.propono.atom.client.* import com.sun.syndication.feed.atom.*
def authStrategy = new OAuthStrategy( "roller", // username "55132608a2fb68816bcd3d1caeafc933", // consumer key "bb420783-fdea-4270-ab83-36445c18c307", // consumer secret "HMAC-SHA1", // key type "http://blogs.example.com/roller-services/oauth/requestToken", "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)
Blog post example
using Groovy and ROME Propono
Tuesday, November 24, 2009
Updated dependenciesstruts2-core-2.1.8.jarstruts2-spring-plugin-2.1.8.jarstruts2-tiles-plugin-2.1.8.jartaglibs-string-1.1.0.jartiles-api-2.0.6.jartiles-core-2.0.6.jartiles-jsp-2.0.6.jar freemarker-2.3.15.jarognl-2.7.3.jaroro-2.0.8.jarantlr-2.7.2.jar xwork-core-2.1.6.jar commons-beanutils-1.7.0.jarcommons-chain-1.2.jarcommons-validator-1.3.1.jarcommons-io-1.3.2.jarcommons-codec-1.4.jarcommons-fileupload-1.2.1.jar
spring-2.5.6.jarspring-web-2.5.6.jar spring-ldap-1.3.0.RELEASE-all.jarspring-security-acl-2.0.5.RELEASE.jarspring-security-core-2.0.5.RELEASE.jarspring-security-taglibs-2.0.5.RELEASE.jarspring-security-openid-2.0.5.RELEASE.jaropenid4java-0.9.5.jarapache-xml-security.jarehcache-1.6.2.jaropenxri-client-1.2.0.jaropenxri-syntax-1.2.0.jar
oauth-core-20090121.jar nekohtml-1.9.7.jarhttpclient-4.0-beta1.jarhttpcore-4.0-beta2.jar
openjpa-1.2.1.jargeronimo-jpa_3.0_spec-1.0.jargeronimo-jta_1.1_spec-1.1.jarserp-1.13.1.jar
rome-1.0.jarrome-fetcher-1.0.jarrome-propono-1.0.jarjdom-1.1.1.jar
xmlrpc-common-3.1.2.jarxmlrpc-client-3.1.2.jarxmlrpc-server-3.1.2.jarws-commons-util-1.0.2.jar
jstl.jar (1.2.2)standard.jarsaxpath-1.0.jarserializer.jarxalan.jar
guice-2.0.jar velocity-1.6.2.jar lucene-core-2.9.0.jar log4j-1.2.12.jar commons-lang-2.4.jarcommons-logging-1.1.1.jar commons-collections-3.2.1.jarcommons-digester-2.0.jarcommons-httpclient-3.1.jar
Xinha 0.95 (JavaScript)Yahoo UI Library 2.8.0 jQuery 1.3.1
Tuesday, November 24, 2009
Roller Project Status
Tuesday, November 24, 2009
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
Web & download statistics
Tuesday, November 24, 2009
Mailing list activity
Tuesday, November 24, 2009
What comes next?
Tuesday, November 24, 2009
Apache Roller 5.0
• Still have work to do
• Testing, debugging, fixing, voting and etc.
• We need your help!
Tuesday, November 24, 2009
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
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
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
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