SlideShare a Scribd company logo
1 of 54
Download to read offline
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
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




                                2001
Tuesday, November 24, 2009
I learned about open source




                             2001
Tuesday, November 24, 2009
started building something




                             Very early version of Roller, called Homeport at the time, under development in the HAHTsite IDE.   2001
Tuesday, November 24, 2009
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
made it free




                                            2002
Tuesday, 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 Eden
        August 8, 2002


                                                2002
Tuesday, November 24, 2009
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
Sun joined the fun




                                                  2004
Tuesday, November 24, 2009
I joined Sun




                                            2004
Tuesday, November 24, 2009
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
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       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
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
IBM’s suite thrived




 Lotus Connections 2.5                             2009
Tuesday, November 24, 2009
Sun’s suite never shipped




                                  2006-2007
Tuesday, November 24, 2009
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
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-2007
Tuesday, November 24, 2009
SocialSite requirements
               • Roller as demo vehicle for SocialSite
               • OAuth for AtomPub
               • Access to user information in macros



                                                2007-2008
Tuesday, November 24, 2009
OpenID requirements
               • A Google Summer of Code project
                    •        By Tatyana Tokareva

               •      Implement OpenID
                    •        With or without Spring Security




                                                               2008
Tuesday, 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-2009
Tuesday, 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+Support
                      https://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.*                 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
Updated dependencies
                     struts2-core-2.1.8.jar                      openjpa-1.2.1.jar
                     struts2-spring-plugin-2.1.8.jar             geronimo-jpa_3.0_spec-1.0.jar
                     struts2-tiles-plugin-2.1.8.jar              geronimo-jta_1.1_spec-1.1.jar
                     taglibs-string-1.1.0.jar                    serp-1.13.1.jar
                     tiles-api-2.0.6.jar
                     tiles-core-2.0.6.jar
                     tiles-jsp-2.0.6.jar                         rome-1.0.jar
                     freemarker-2.3.15.jar                       rome-fetcher-1.0.jar
                     ognl-2.7.3.jar                              rome-propono-1.0.jar
                     oro-2.0.8.jar                               jdom-1.1.1.jar
                     antlr-2.7.2.jar
                     xwork-core-2.1.6.jar
                     commons-beanutils-1.7.0.jar                 xmlrpc-common-3.1.2.jar
                     commons-chain-1.2.jar                       xmlrpc-client-3.1.2.jar
                     commons-validator-1.3.1.jar                 xmlrpc-server-3.1.2.jar
                     commons-io-1.3.2.jar                        ws-commons-util-1.0.2.jar
                     commons-codec-1.4.jar
                     commons-fileupload-1.2.1.jar
                                                                 jstl.jar (1.2.2)
                     spring-2.5.6.jar                            standard.jar
                                                                 saxpath-1.0.jar
                     spring-web-2.5.6.jar                        serializer.jar
                     spring-ldap-1.3.0.RELEASE-all.jar           xalan.jar
                     spring-security-acl-2.0.5.RELEASE.jar
                     spring-security-core-2.0.5.RELEASE.jar      guice-2.0.jar
                     spring-security-taglibs-2.0.5.RELEASE.jar   velocity-1.6.2.jar
                     spring-security-openid-2.0.5.RELEASE.jar
                     openid4java-0.9.5.jar
                                                                 lucene-core-2.9.0.jar
                     apache-xml-security.jar                     log4j-1.2.12.jar
                     ehcache-1.6.2.jar                           commons-lang-2.4.jar
                     openxri-client-1.2.0.jar                    commons-logging-1.1.1.jar
                     openxri-syntax-1.2.0.jar                    commons-collections-3.2.1.jar
                                                                 commons-digester-2.0.jar
                     oauth-core-20090121.jar                     commons-httpclient-3.1.jar
                     nekohtml-1.9.7.jar
                     httpclient-4.0-beta1.jar
                                                                 Xinha 0.95 (JavaScript)
                     httpcore-4.0-beta2.jar                      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

More Related Content

What's hot

MozTW Jetpack Workshop: Taichung
MozTW Jetpack Workshop: TaichungMozTW Jetpack Workshop: Taichung
MozTW Jetpack Workshop: Taichung
littlebtc
 
MozTW Jetpack Workshop: Taipei
MozTW Jetpack Workshop: TaipeiMozTW Jetpack Workshop: Taipei
MozTW Jetpack Workshop: Taipei
littlebtc
 
Java EE Servlet/JSP Tutorial- Cookbook 2
Java EE Servlet/JSP Tutorial- Cookbook 2Java EE Servlet/JSP Tutorial- Cookbook 2
Java EE Servlet/JSP Tutorial- Cookbook 2
billdigman
 
Debugging IE Performance Issues with xperf, ETW and NavigationTiming
Debugging IE Performance Issues with xperf, ETW and NavigationTimingDebugging IE Performance Issues with xperf, ETW and NavigationTiming
Debugging IE Performance Issues with xperf, ETW and NavigationTiming
Nicholas Jansma
 

What's hot (20)

Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
 
CodeIgniter PHP MVC Framework
CodeIgniter PHP MVC FrameworkCodeIgniter PHP MVC Framework
CodeIgniter PHP MVC Framework
 
Hands On with Maven
Hands On with MavenHands On with Maven
Hands On with Maven
 
Spring MVC to iOS and the REST
Spring MVC to iOS and the RESTSpring MVC to iOS and the REST
Spring MVC to iOS and the REST
 
Apache maven 2 overview
Apache maven 2 overviewApache maven 2 overview
Apache maven 2 overview
 
Maven Introduction
Maven IntroductionMaven Introduction
Maven Introduction
 
Word press, the automated way
Word press, the automated wayWord press, the automated way
Word press, the automated way
 
Hey My Web App is Slow Where is the Problem
Hey My Web App is Slow Where is the ProblemHey My Web App is Slow Where is the Problem
Hey My Web App is Slow Where is the Problem
 
Creating Your First WordPress Plugin
Creating Your First WordPress PluginCreating Your First WordPress Plugin
Creating Your First WordPress Plugin
 
Play Framework and Activator
Play Framework and ActivatorPlay Framework and Activator
Play Framework and Activator
 
JBoss Enterprise Maven Repository
JBoss Enterprise Maven RepositoryJBoss Enterprise Maven Repository
JBoss Enterprise Maven Repository
 
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
 
Web application development using Play Framework (with Java)
Web application development using Play Framework (with Java)Web application development using Play Framework (with Java)
Web application development using Play Framework (with Java)
 
Enterprise Maven Repository BOF
Enterprise Maven Repository BOFEnterprise Maven Repository BOF
Enterprise Maven Repository BOF
 
Immutant
ImmutantImmutant
Immutant
 
MozTW Jetpack Workshop: Taichung
MozTW Jetpack Workshop: TaichungMozTW Jetpack Workshop: Taichung
MozTW Jetpack Workshop: Taichung
 
Ez Community Gandbox.fr
Ez Community Gandbox.frEz Community Gandbox.fr
Ez Community Gandbox.fr
 
MozTW Jetpack Workshop: Taipei
MozTW Jetpack Workshop: TaipeiMozTW Jetpack Workshop: Taipei
MozTW Jetpack Workshop: Taipei
 
Java EE Servlet/JSP Tutorial- Cookbook 2
Java EE Servlet/JSP Tutorial- Cookbook 2Java EE Servlet/JSP Tutorial- Cookbook 2
Java EE Servlet/JSP Tutorial- Cookbook 2
 
Debugging IE Performance Issues with xperf, ETW and NavigationTiming
Debugging IE Performance Issues with xperf, ETW and NavigationTimingDebugging IE Performance Issues with xperf, ETW and NavigationTiming
Debugging IE Performance Issues with xperf, ETW and NavigationTiming
 

Viewers also liked

Elassandra: Elasticsearch as a Cassandra Secondary Index (Rémi Trouville, Vin...
Elassandra: Elasticsearch as a Cassandra Secondary Index (Rémi Trouville, Vin...Elassandra: Elasticsearch as a Cassandra Secondary Index (Rémi Trouville, Vin...
Elassandra: Elasticsearch as a Cassandra Secondary Index (Rémi Trouville, Vin...
DataStax
 

Viewers also liked (9)

Introduction to Usergrid - ApacheCon EU 2014
Introduction to Usergrid - ApacheCon EU 2014Introduction to Usergrid - ApacheCon EU 2014
Introduction to Usergrid - ApacheCon EU 2014
 
Apache Usergrid for JavaScript Developers
Apache Usergrid for JavaScript DevelopersApache Usergrid for JavaScript Developers
Apache Usergrid for JavaScript Developers
 
Juniori/Seniori
Juniori/SenioriJuniori/Seniori
Juniori/Seniori
 
Apache Airavata Cloud Integration
Apache Airavata Cloud IntegrationApache Airavata Cloud Integration
Apache Airavata Cloud Integration
 
Sample Chapter of Practical Unit Testing with TestNG and Mockito
Sample Chapter of Practical Unit Testing with TestNG and MockitoSample Chapter of Practical Unit Testing with TestNG and Mockito
Sample Chapter of Practical Unit Testing with TestNG and Mockito
 
Usergrid Overview
Usergrid OverviewUsergrid Overview
Usergrid Overview
 
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
 
How to size up an Apache Cassandra cluster (Training)
How to size up an Apache Cassandra cluster (Training)How to size up an Apache Cassandra cluster (Training)
How to size up an Apache Cassandra cluster (Training)
 
Elassandra: Elasticsearch as a Cassandra Secondary Index (Rémi Trouville, Vin...
Elassandra: Elasticsearch as a Cassandra Secondary Index (Rémi Trouville, Vin...Elassandra: Elasticsearch as a Cassandra Secondary Index (Rémi Trouville, Vin...
Elassandra: Elasticsearch as a Cassandra Secondary Index (Rémi Trouville, Vin...
 

Similar to Whats New In Roller5

Hw09 Whats New From Cloudera
Hw09   Whats New From ClouderaHw09   Whats New From Cloudera
Hw09 Whats New From Cloudera
Cloudera, Inc.
 
Open stack private cloud panel
Open stack private cloud panelOpen stack private cloud panel
Open stack private cloud panel
laurabeckcahoon
 
Open stack private cloud panel
Open stack private cloud panelOpen stack private cloud panel
Open stack private cloud panel
laurabeckcahoon
 
BlackBerry PlayBook Development Overview: LA Flash AUG
BlackBerry PlayBook Development Overview: LA Flash AUG BlackBerry PlayBook Development Overview: LA Flash AUG
BlackBerry PlayBook Development Overview: LA Flash AUG
Joseph Labrecque
 
OCaml Labs introduction at OCaml Consortium 2012
OCaml Labs introduction at OCaml Consortium 2012OCaml Labs introduction at OCaml Consortium 2012
OCaml Labs introduction at OCaml Consortium 2012
Anil Madhavapeddy
 

Similar to Whats New In Roller5 (20)

Forking Successfully - or is a branch better?
Forking Successfully - or is a branch better?Forking Successfully - or is a branch better?
Forking Successfully - or is a branch better?
 
Openstack In Real Life
Openstack In Real LifeOpenstack In Real Life
Openstack In Real Life
 
Nuxeo Iks 2009 11 13
Nuxeo Iks 2009 11 13Nuxeo Iks 2009 11 13
Nuxeo Iks 2009 11 13
 
Intro to-patterns-linda-rising[1]
Intro to-patterns-linda-rising[1]Intro to-patterns-linda-rising[1]
Intro to-patterns-linda-rising[1]
 
Hw09 Whats New From Cloudera
Hw09   Whats New From ClouderaHw09   Whats New From Cloudera
Hw09 Whats New From Cloudera
 
Splash
SplashSplash
Splash
 
Open stack private cloud panel
Open stack private cloud panelOpen stack private cloud panel
Open stack private cloud panel
 
Open stack private cloud panel
Open stack private cloud panelOpen stack private cloud panel
Open stack private cloud panel
 
Netflix Architecture Tutorial at Gluecon
Netflix Architecture Tutorial at GlueconNetflix Architecture Tutorial at Gluecon
Netflix Architecture Tutorial at Gluecon
 
Building Lanyrd
Building LanyrdBuilding Lanyrd
Building Lanyrd
 
Nooku in a nutshell
Nooku in a nutshellNooku in a nutshell
Nooku in a nutshell
 
From Java to Ruby...and Back
From Java to Ruby...and BackFrom Java to Ruby...and Back
From Java to Ruby...and Back
 
JRuby in The Enterprise
JRuby in The EnterpriseJRuby in The Enterprise
JRuby in The Enterprise
 
BlackBerry PlayBook Development Overview: LA Flash AUG
BlackBerry PlayBook Development Overview: LA Flash AUG BlackBerry PlayBook Development Overview: LA Flash AUG
BlackBerry PlayBook Development Overview: LA Flash AUG
 
OCaml Labs introduction at OCaml Consortium 2012
OCaml Labs introduction at OCaml Consortium 2012OCaml Labs introduction at OCaml Consortium 2012
OCaml Labs introduction at OCaml Consortium 2012
 
Fork Yeah! The Rise and Development of illumos
Fork Yeah! The Rise and Development of illumosFork Yeah! The Rise and Development of illumos
Fork Yeah! The Rise and Development of illumos
 
Ruby on Rails - An overview
Ruby on Rails -  An overviewRuby on Rails -  An overview
Ruby on Rails - An overview
 
Ruby On Rails Ecosystem
Ruby On Rails EcosystemRuby On Rails Ecosystem
Ruby On Rails Ecosystem
 
Mozilla Weave: Integrating Services into the Browser
Mozilla Weave: Integrating Services into the BrowserMozilla Weave: Integrating Services into the Browser
Mozilla Weave: Integrating Services into the Browser
 
Apache Rave (Incubating) at ROLE Developer Camp
Apache Rave (Incubating) at ROLE Developer CampApache Rave (Incubating) at ROLE Developer Camp
Apache Rave (Incubating) at ROLE Developer Camp
 

More from David M. Johnson

More from David M. Johnson (7)

How to Contribute to Apache Usergrid
How to Contribute to Apache UsergridHow to Contribute to Apache Usergrid
How to Contribute to Apache Usergrid
 
Wayin devops-2013
Wayin devops-2013Wayin devops-2013
Wayin devops-2013
 
Innovate 2010-oslc-jazz
Innovate 2010-oslc-jazzInnovate 2010-oslc-jazz
Innovate 2010-oslc-jazz
 
Barcamprdu linkeddata
Barcamprdu linkeddataBarcamprdu linkeddata
Barcamprdu linkeddata
 
Shindig for Blogs and Wikis
Shindig for Blogs and WikisShindig for Blogs and Wikis
Shindig for Blogs and Wikis
 
Social Software at work
Social Software at workSocial Software at work
Social Software at work
 
Beyond Blogging: Feeds in Action
Beyond Blogging: Feeds in ActionBeyond Blogging: Feeds in Action
Beyond Blogging: Feeds in Action
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation Computing
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern Enterprise
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Decarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceDecarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational Performance
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 

Whats New In Roller5

  • 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
  • 9. Story of Roller up to 5.0 Tuesday, November 24, 2009
  • 10. While at HAHT Software 2001 Tuesday, November 24, 2009
  • 11. I learned about open source 2001 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
  • 14. made it free 2002 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
  • 17. Sun joined the fun 2004 Tuesday, November 24, 2009
  • 18. I joined Sun 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
  • 23. IBM’s suite thrived Lotus Connections 2.5 2009 Tuesday, November 24, 2009
  • 24. Sun’s suite never shipped 2006-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
  • 26. Development of 5.0 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
  • 32. New features in 5.0 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
  • 44. Updated dependencies struts2-core-2.1.8.jar openjpa-1.2.1.jar struts2-spring-plugin-2.1.8.jar geronimo-jpa_3.0_spec-1.0.jar struts2-tiles-plugin-2.1.8.jar geronimo-jta_1.1_spec-1.1.jar taglibs-string-1.1.0.jar serp-1.13.1.jar tiles-api-2.0.6.jar tiles-core-2.0.6.jar tiles-jsp-2.0.6.jar rome-1.0.jar freemarker-2.3.15.jar rome-fetcher-1.0.jar ognl-2.7.3.jar rome-propono-1.0.jar oro-2.0.8.jar jdom-1.1.1.jar antlr-2.7.2.jar xwork-core-2.1.6.jar commons-beanutils-1.7.0.jar xmlrpc-common-3.1.2.jar commons-chain-1.2.jar xmlrpc-client-3.1.2.jar commons-validator-1.3.1.jar xmlrpc-server-3.1.2.jar commons-io-1.3.2.jar ws-commons-util-1.0.2.jar commons-codec-1.4.jar commons-fileupload-1.2.1.jar jstl.jar (1.2.2) spring-2.5.6.jar standard.jar saxpath-1.0.jar spring-web-2.5.6.jar serializer.jar spring-ldap-1.3.0.RELEASE-all.jar xalan.jar spring-security-acl-2.0.5.RELEASE.jar spring-security-core-2.0.5.RELEASE.jar guice-2.0.jar spring-security-taglibs-2.0.5.RELEASE.jar velocity-1.6.2.jar spring-security-openid-2.0.5.RELEASE.jar openid4java-0.9.5.jar lucene-core-2.9.0.jar apache-xml-security.jar log4j-1.2.12.jar ehcache-1.6.2.jar commons-lang-2.4.jar openxri-client-1.2.0.jar commons-logging-1.1.1.jar openxri-syntax-1.2.0.jar commons-collections-3.2.1.jar commons-digester-2.0.jar oauth-core-20090121.jar commons-httpclient-3.1.jar nekohtml-1.9.7.jar httpclient-4.0-beta1.jar Xinha 0.95 (JavaScript) httpcore-4.0-beta2.jar Yahoo UI Library 2.8.0 jQuery 1.3.1 Tuesday, November 24, 2009
  • 45. Roller Project Status 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
  • 47. Web & download statistics Tuesday, November 24, 2009
  • 48. Mailing list activity Tuesday, November 24, 2009
  • 49. What comes next? 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