54
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

Whats New In Roller5

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Whats New In Roller5

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

Page 2: Whats New In Roller5

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

Page 3: Whats New In Roller5

Roller Overview

Tuesday, November 24, 2009

Page 4: Whats New In Roller5

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

Page 5: Whats New In Roller5

Feature overview

* Wordpress Mu and Wordpress/Lyceum forks provide multi-blog** LDAP plugin exists but is experimental and unsupported

Tuesday, November 24, 2009

Page 6: Whats New In Roller5

Deployment architecture #1

Tuesday, November 24, 2009

Page 7: Whats New In Roller5

Deployment architecture #2

Tuesday, November 24, 2009

Page 8: Whats New In Roller5

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

Page 9: Whats New In Roller5

Story of Roller up to 5.0

Tuesday, November 24, 2009

Page 10: Whats New In Roller5

While at HAHT Software

2001Tuesday, November 24, 2009

Page 11: Whats New In Roller5

I learned about open source

2001Tuesday, November 24, 2009

Page 12: Whats New In Roller5

started building something

2001Very early version of Roller, called Homeport at the time, under development in the HAHTsite IDE.

Tuesday, November 24, 2009

Page 13: Whats New In Roller5

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

Page 14: Whats New In Roller5

made it free

2002Tuesday, November 24, 2009

Page 15: Whats New In Roller5

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

Page 16: Whats New In Roller5

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

Page 17: Whats New In Roller5

Sun joined the fun

2004Tuesday, November 24, 2009

Page 18: Whats New In Roller5

I joined Sun

2004Tuesday, November 24, 2009

Page 19: Whats New In Roller5

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

Page 20: Whats New In Roller5

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

Page 21: Whats New In Roller5

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

Page 22: Whats New In Roller5

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

Page 23: Whats New In Roller5

2009Lotus Connections 2.5

IBM’s suite thrived

Tuesday, November 24, 2009

Page 24: Whats New In Roller5

Sun’s suite never shipped

2006-2007Tuesday, November 24, 2009

Page 25: Whats New In Roller5

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

Page 26: Whats New In Roller5

Development of 5.0

Tuesday, November 24, 2009

Page 27: Whats New In Roller5

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

Page 28: Whats New In Roller5

SocialSite requirements

•Roller as demo vehicle for SocialSite

• OAuth for AtomPub

• Access to user information in macros

2007-2008Tuesday, November 24, 2009

Page 29: Whats New In Roller5

OpenID requirements• A Google Summer of Code project

• By Tatyana Tokareva

• Implement OpenID

• With or without Spring Security

2008Tuesday, November 24, 2009

Page 30: Whats New In Roller5

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

Page 31: Whats New In Roller5

Other requirements

• Multi-domain support

• Update all dependencies

• Fix bugs

Tuesday, November 24, 2009

Page 32: Whats New In Roller5

New features in 5.0

Tuesday, November 24, 2009

Page 33: Whats New In Roller5

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

Page 34: Whats New In Roller5

Tuesday, November 24, 2009

Page 35: Whats New In Roller5

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

Page 36: Whats New In Roller5

Tuesday, November 24, 2009

Page 37: Whats New In Roller5

Tuesday, November 24, 2009

Page 38: Whats New In Roller5

Tuesday, November 24, 2009

Page 39: Whats New In Roller5

Tuesday, November 24, 2009

Page 40: Whats New In Roller5

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

Page 41: Whats New In Roller5

OAuth for AtomPub

• AtomPub authentication options now:

• OAuth

• WSSE

• Basic

Tuesday, November 24, 2009

Page 42: Whats New In Roller5

Tuesday, November 24, 2009

Page 43: Whats New In Roller5

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

Page 44: Whats New In Roller5

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

Page 45: Whats New In Roller5

Roller Project Status

Tuesday, November 24, 2009

Page 46: Whats New In Roller5

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

Page 47: Whats New In Roller5

Web & download statistics

Tuesday, November 24, 2009

Page 48: Whats New In Roller5

Mailing list activity

Tuesday, November 24, 2009

Page 49: Whats New In Roller5

What comes next?

Tuesday, November 24, 2009

Page 50: Whats New In Roller5

Apache Roller 5.0

• Still have work to do

• Testing, debugging, fixing, voting and etc.

• We need your help!

Tuesday, November 24, 2009

Page 51: Whats New In Roller5

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

Page 52: Whats New In Roller5

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

Page 53: Whats New In Roller5

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

Page 54: Whats New In Roller5

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