SlideShare a Scribd company logo
1 of 39
Download to read offline
Introduction to Apache Roller
           Matt Raible
     Apache Roller Committer
           June 2007

                                1
Today’s Agenda

Introductions
What is Apache Roller?
Installing Roller
Roller Architecture
   Blog Customization
   Server Customization
Other Features: Clients and Planet
Q and A
                                     2
The Source for Apache, Tomcat,
           Roller, Geronimo & Axis

  Covalent is the Leading Provider of Support
  and Services for Apache Software
  Foundation Open Source Projects, Namely
  Tomcat, Geronimo, Roller, Axis, & Apache,
  the World's Leading Web Server*
  Covalent is One of the Few Sources of Full
  Commercial Support for Apache, Axis, Roller,
  Geronimo & Tomcat on a Global Basis
  Covalent Currently Supports More Than 50%
  of Fortune 500 and 20% of Global 2000
  Companies
*62% global Web server marketshare ~Netcraft April 2006 Web Server Survey   3
Who is Matt Raible?
One of the first Roller users and
Committers - started in August 2002
Committer on several open source projects:
Apache Roller, AppFuse, XDoclet, Struts
Menu, Display Tag
Java EE 5.0 and JSF 1.2 Expert Group
Member
Author: Spring Live (SourceBeat) and
contributor to Pro JSP (Apress)

                                             4
What is Apache Roller?

Apache Roller is a full-featured, multi-user and
group-blog server suitable for blog sites large and
small
Cool Features:
  Multi-user and Group blogging
  Comment moderation and spam prevention
  Complete control over UI with templates
  Built-in Search
  RSS 2.0 and Atom 1.0 Support
  Pluggable Cache and Rendering System
                                                      5
History

Started by Dave Johnson in 2000 as
“Homeport”




    http://rollerweblogger.org/roller/date/20021231   6
History of Roller

In 2002, Dave ditched EJBs and HAHTsite
IDE for open source tools (Ant, Castor,
Struts, and Velocity)
April 5, 2002: Roller 0.9.0 Released
April 17, 2002: O’Reilly Article “Building an
Open Source J2EE Weblogger” Published
July 31 - August 7, 2002: The world starts
blogging with Roller
        http://rollerweblogger.org/roller/date/20021231   7
Roller since 2002

Roller now powers jroller.com,
blogs.sun.com, IBM developerWorks blogs
and many others
Dave hired by Sun to work on Roller full-
time in September 2004
Roller began incubation at Apache in June
2005
April 23, 2007: Graduated and released 3.1
                                             8
But what is Roller?

Roller is a blogging engine
Blogs make web publishing easy
   Everyone can do it
   No need for IT or Webmasters
   Tools are in the users hands
Feeds make reading blogs easy
   Feeds are XML-based: RSS or Atom
   You subscribe to a feed in a Feed Reader
   Feed Readers are like inboxes for the web
                                               9
Posting a Weblog Entry




                         10
Viewing a Weblog Entry




                         11
Viewing a Weblog Entry




                         12
Reading a Weblog Entry




                         13
Why choose Roller?


Proven, full-featured blogging solution for big
sites
            Sun, IBM, Yale University,
   Covalent and ESRI
Open Source and Apache Licensed
Active and growing community at Apache
Standard Java Web Application Architecture

                                                  14
Why choose Roller?

It works great if you know what you’re doing
Nice looking example sites:
   http://blogs.sun.com/greimer
   http://blogs.sun.com/jonathan
   http://blogs.usd.edu/jrbethke
   http://rollerweblogger.org/roller
   http://raibledesigns.com
   http://ryandelaplante.com
   http://blog.covalent.net/roller/covalent/
                                               15
Installing Roller

1. Download Roller 3.1 from
   http://cwiki.apache.org/confluence/display/
   ROLLER/Roller+Downloads
2. Download Hibernate and other JARs from
   https://roller.dev.java.net/servlets/ProjectD
   ocumentList?folderID=6962
3. Copy JARs from java.net download into
   apache-roller-3.1/webapp/roller/WEB-
   INF/lib
                                                   16
Installing Roller: Java & MySQL

4. Download and Install Java 5 from
   http://java.sun.com/javase/downloads
5. Download and install MySQL 5 from
   http://dev.mysql.com/downloads
6. Create database with files in WEB-
   INF/dbscripts:
   mysqladmin -u root -p create roller
   cd webapp/roller/WEB-INF/dbscripts/mysql
   mysql -u root -p roller < createdb.sql

                                              17
Installing Roller: Tomcat

7. Download and install Tomcat 6 from
   http://tomcat.apache.org/download-60.cgi
8. Copy apache-roller-3.1/webapp/roller to
   $CATALINA_HOME/webapps/ROOT
9. Copy activation.jar, mail.jar and mysql-connector-
   java-5.0.3-bin.jar to $CATALINA_HOME/lib
   (common/lib for Tomcat 5.x)
   » continued on next page


                                                        18
Installing Roller: Tomcat (cont.)

10. Create ROOT/META-INF/context.xml with the
    following contents:
   <Context path=quot;quot; reloadable=quot;falsequot; antiJARLocking=quot;truequot;
       antiResourceLocking=quot;falsequot; allowLinking=quot;truequot;>

      <Resource name=quot;jdbc/rollerdbquot; auth=quot;Containerquot;
                type=quot;javax.sql.DataSourcequot;
                maxActive=quot;20quot; maxIdle=quot;10quot; maxWait=quot;100quot;
                driverClassName=quot;com.mysql.jdbc.Driverquot;
                username=quot;rootquot; password=quot;quot;
                url=quot;jdbc:mysql://localhost/rollerquot;/>

       <Resource name=quot;mail/Sessionquot; auth=quot;Containerquot;
                 type=quot;javax.mail.Sessionquot;
                 mail.smtp.host=quot;localhostquot; />
   </Context>
                                                               19
Roller Install: Startup
Start Tomcat and create your weblog at
http://localhost:8080




                                         20
Create a User




                21
Create a Weblog




                  22
The obligatory first post




                            23
Roller Architecture: Enterprise

Web UI via Java Servlets and JSP
  Front controller, Web MVC and Open Session
  In View patterns
Persistence via JDBC
   Factory, Façade and Data Mapper patterns




                                               24
Roller Architecture: Geek Speak
Roller Web: Web and UI Layer
    Editor UI via Struts and JSP, blog and feed rendering
    via Velocity
    Feed parsing via ROME, Blogger API via Apache
    XML-RPC
Roller Beans: Business and Persistence Layer
    Hibernate for DBMS, Lucene for search




                                                            25
What’s New in Roller 4.0

Easier Theme Customization
Easy Installation
Java 5, Open JPA and Struts 2
http://cwiki.apache.org/confluence/display/
ROLLER/What%27s+New+in+Roller+4.0




                                              26
Weblog Customization

Each weblog is defined by user-editable
templates
A weblog has three required templates:
Weblog, _day and _css
   + any number of user-defined templates
Template language: Apache Velocity
  Other languages available via plugins
Data available to templates via Models
                                            27
Example Weblog Template




                          28
As an end user, you can:

Without hacking HTML or CSS:
   Preview and switch to a new theme
   Add bookmarks to your blogroll
   Add categories and tags
With some HTML, CSS and template
hacking:
   Customize your blog templates
   Override Roller macros
   Create your own blog themes
                                       29
Server Customization

Single-Sign on with Acegi Security (Yale’s
CAS, OpenID)
Use Roller Plugins to:
  Transform entry content at display time
  Plugin your own models for use in
  templates
  Plugin your own template language
  Add your own comment validation rules
                                             30
Developer Customization

As a developer, you can use Roller web
services from any language
   Automated blogging via MetaWeblog or
   Atom Protocol
   Automate administration via Roller
   Admin Protocol
Add new plugins, written in Java
  Plugins for: JSPWiki, Emoticon,
  Technorati, Wikipedia, Google, Textile
                                           31
Other Features

Planets are useful for aggregating feeds
from many sources
Weblog clients make it easy to publish and
edit entries to your blog




                                             32
What’s a Planet?

A Community Aggregator
Portal-like web application which displays
weblog posts from a group of closely
related but separately hosted blogs
Provides aggregated feeds so that readers
may subscribe to the group as a whole
Most popular is Planet, which is Python-
based
                                             33
Example Planets




                  34
Roller Planet

Roller’s built-in Planet server
Standalone Planet server ready to ship
   Multiple Planets per server
   Each Planet defines Aggregation
   Groups
   Based on Roller
     Same back-end architecture
     Same rendering system
                                         35
Weblog Clients



    Windows: w.bloggar
    Mac: MarsEdit
    Firefox: Scribefire
    All: Roller!



                          36
Weblog Client Screenshots




                            37
Client Settings


URL to Blog: http://yourserver.com
Server API URL:
http://yourserver.com/roller-services/xmlrpc
Many clients have support for Roller, but
they’re missing “roller-services” in the
Server API URL
Username and Password

                                               38
Questions?


  Roller User Mailing List:
    user@roller.apache.org

  Covalent Support:
    http://support.covalent.net
    925/974-8800/800/444-1935
    support@covalent.net

                                  39

More Related Content

What's hot

Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016Matt Raible
 
Modern websites in 2020 and Joomla
Modern websites in 2020 and JoomlaModern websites in 2020 and Joomla
Modern websites in 2020 and JoomlaGeorge Wilson
 
 Active Storage - Modern File Storage? 
 Active Storage - Modern File Storage?  Active Storage - Modern File Storage? 
 Active Storage - Modern File Storage? Michael Yagudaev
 
Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...
Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...
Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...Matt Raible
 
Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008
Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008
Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008Baruch Sadogursky
 
Java Web Application Security - Utah JUG 2011
Java Web Application Security - Utah JUG 2011Java Web Application Security - Utah JUG 2011
Java Web Application Security - Utah JUG 2011Matt Raible
 
Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Ryan Cuprak
 
Play Framework workshop: full stack java web app
Play Framework workshop: full stack java web appPlay Framework workshop: full stack java web app
Play Framework workshop: full stack java web appAndrew Skiba
 
The Modern Java Web Developer - JavaOne 2013
The Modern Java Web Developer - JavaOne 2013The Modern Java Web Developer - JavaOne 2013
The Modern Java Web Developer - JavaOne 2013Matt Raible
 
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7Max Andersen
 
Build Your Own CMS with Apache Sling
Build Your Own CMS with Apache SlingBuild Your Own CMS with Apache Sling
Build Your Own CMS with Apache SlingBob Paulin
 
Spring Boot 1.3 News #渋谷Java
Spring Boot 1.3 News #渋谷JavaSpring Boot 1.3 News #渋谷Java
Spring Boot 1.3 News #渋谷JavaToshiaki Maki
 
Developing Modern Java Web Applications with Java EE 7 and AngularJS
Developing Modern Java Web Applications with Java EE 7 and AngularJSDeveloping Modern Java Web Applications with Java EE 7 and AngularJS
Developing Modern Java Web Applications with Java EE 7 and AngularJSShekhar Gulati
 
Enough with the JavaScript already!
Enough with the JavaScript already!Enough with the JavaScript already!
Enough with the JavaScript already!Nicholas Zakas
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...Matt Raible
 
Scala and Play with Gradle
Scala and Play with GradleScala and Play with Gradle
Scala and Play with GradleWei Chen
 
Spring Booted, But... @JCConf 16', Taiwan
Spring Booted, But... @JCConf 16', TaiwanSpring Booted, But... @JCConf 16', Taiwan
Spring Booted, But... @JCConf 16', TaiwanPei-Tang Huang
 
Spring Boot and JHipster
Spring Boot and JHipsterSpring Boot and JHipster
Spring Boot and JHipsterEueung Mulyana
 
Developing, Testing and Scaling with Apache Camel - UberConf 2015
Developing, Testing and Scaling with Apache Camel - UberConf 2015Developing, Testing and Scaling with Apache Camel - UberConf 2015
Developing, Testing and Scaling with Apache Camel - UberConf 2015Matt Raible
 
Java Web Application Security - UberConf 2011
Java Web Application Security - UberConf 2011Java Web Application Security - UberConf 2011
Java Web Application Security - UberConf 2011Matt Raible
 

What's hot (20)

Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
 
Modern websites in 2020 and Joomla
Modern websites in 2020 and JoomlaModern websites in 2020 and Joomla
Modern websites in 2020 and Joomla
 
 Active Storage - Modern File Storage? 
 Active Storage - Modern File Storage?  Active Storage - Modern File Storage? 
 Active Storage - Modern File Storage? 
 
Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...
Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...
Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...
 
Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008
Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008
Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008
 
Java Web Application Security - Utah JUG 2011
Java Web Application Security - Utah JUG 2011Java Web Application Security - Utah JUG 2011
Java Web Application Security - Utah JUG 2011
 
Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and
 
Play Framework workshop: full stack java web app
Play Framework workshop: full stack java web appPlay Framework workshop: full stack java web app
Play Framework workshop: full stack java web app
 
The Modern Java Web Developer - JavaOne 2013
The Modern Java Web Developer - JavaOne 2013The Modern Java Web Developer - JavaOne 2013
The Modern Java Web Developer - JavaOne 2013
 
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
 
Build Your Own CMS with Apache Sling
Build Your Own CMS with Apache SlingBuild Your Own CMS with Apache Sling
Build Your Own CMS with Apache Sling
 
Spring Boot 1.3 News #渋谷Java
Spring Boot 1.3 News #渋谷JavaSpring Boot 1.3 News #渋谷Java
Spring Boot 1.3 News #渋谷Java
 
Developing Modern Java Web Applications with Java EE 7 and AngularJS
Developing Modern Java Web Applications with Java EE 7 and AngularJSDeveloping Modern Java Web Applications with Java EE 7 and AngularJS
Developing Modern Java Web Applications with Java EE 7 and AngularJS
 
Enough with the JavaScript already!
Enough with the JavaScript already!Enough with the JavaScript already!
Enough with the JavaScript already!
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...
 
Scala and Play with Gradle
Scala and Play with GradleScala and Play with Gradle
Scala and Play with Gradle
 
Spring Booted, But... @JCConf 16', Taiwan
Spring Booted, But... @JCConf 16', TaiwanSpring Booted, But... @JCConf 16', Taiwan
Spring Booted, But... @JCConf 16', Taiwan
 
Spring Boot and JHipster
Spring Boot and JHipsterSpring Boot and JHipster
Spring Boot and JHipster
 
Developing, Testing and Scaling with Apache Camel - UberConf 2015
Developing, Testing and Scaling with Apache Camel - UberConf 2015Developing, Testing and Scaling with Apache Camel - UberConf 2015
Developing, Testing and Scaling with Apache Camel - UberConf 2015
 
Java Web Application Security - UberConf 2011
Java Web Application Security - UberConf 2011Java Web Application Security - UberConf 2011
Java Web Application Security - UberConf 2011
 

Similar to Introduction to Apache Roller

Developing Java Web Applications
Developing Java Web ApplicationsDeveloping Java Web Applications
Developing Java Web Applicationshchen1
 
Web components Introduction
Web components IntroductionWeb components Introduction
Web components IntroductionEugenio Romano
 
Link. apache wicket [santi caltabiano]
  Link. apache wicket [santi caltabiano]  Link. apache wicket [santi caltabiano]
Link. apache wicket [santi caltabiano]santi caltabiano
 
Full Stack Reactive with React and Spring WebFlux - Switzerland JUG 2020
Full Stack Reactive with React and Spring WebFlux - Switzerland JUG 2020Full Stack Reactive with React and Spring WebFlux - Switzerland JUG 2020
Full Stack Reactive with React and Spring WebFlux - Switzerland JUG 2020Matt Raible
 
Deview 2013 mobile browser internals and trends_20131022
Deview 2013 mobile browser internals and trends_20131022Deview 2013 mobile browser internals and trends_20131022
Deview 2013 mobile browser internals and trends_20131022NAVER D2
 
Full Stack Reactive with React and Spring WebFlux - SpringOne 2018
Full Stack Reactive with React and Spring WebFlux - SpringOne 2018Full Stack Reactive with React and Spring WebFlux - SpringOne 2018
Full Stack Reactive with React and Spring WebFlux - SpringOne 2018Matt Raible
 
Apache
ApacheApache
Apachejtpond
 
Kick Start your Application Development and Management Strategy
Kick Start your Application Development and Management Strategy Kick Start your Application Development and Management Strategy
Kick Start your Application Development and Management Strategy WSO2
 
Full Stack Reactive with React and Spring WebFlux - Dublin JUG 2019
Full Stack Reactive with React and Spring WebFlux - Dublin JUG 2019Full Stack Reactive with React and Spring WebFlux - Dublin JUG 2019
Full Stack Reactive with React and Spring WebFlux - Dublin JUG 2019Matt Raible
 
Full Stack Reactive with React and Spring WebFlux - PWX 2019
Full Stack Reactive with React and Spring WebFlux - PWX 2019Full Stack Reactive with React and Spring WebFlux - PWX 2019
Full Stack Reactive with React and Spring WebFlux - PWX 2019Matt Raible
 
Wso2 product release webinar introducing jaggery
Wso2 product release webinar   introducing jaggeryWso2 product release webinar   introducing jaggery
Wso2 product release webinar introducing jaggeryWSO2
 
Docker for Java Developers
Docker for Java DevelopersDocker for Java Developers
Docker for Java DevelopersImesh Gunaratne
 
Deploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on ContainersDeploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on ContainersImesh Gunaratne
 
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on Containers
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on ContainersWSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on Containers
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on ContainersLakmal Warusawithana
 
Spring Live Sample Chapter
Spring Live Sample ChapterSpring Live Sample Chapter
Spring Live Sample ChapterSyed Shahul
 
JavaScript Modules Done Right
JavaScript Modules Done RightJavaScript Modules Done Right
JavaScript Modules Done RightMariusz Nowak
 
01 overview-and-setup
01 overview-and-setup01 overview-and-setup
01 overview-and-setupsnopteck
 
Lecture 19 - Dynamic Web - JAVA - Part 1.ppt
Lecture 19 - Dynamic Web - JAVA - Part 1.pptLecture 19 - Dynamic Web - JAVA - Part 1.ppt
Lecture 19 - Dynamic Web - JAVA - Part 1.pptKalsoomTahir2
 

Similar to Introduction to Apache Roller (20)

Developing Java Web Applications
Developing Java Web ApplicationsDeveloping Java Web Applications
Developing Java Web Applications
 
Web components Introduction
Web components IntroductionWeb components Introduction
Web components Introduction
 
Link. apache wicket [santi caltabiano]
  Link. apache wicket [santi caltabiano]  Link. apache wicket [santi caltabiano]
Link. apache wicket [santi caltabiano]
 
Full Stack Reactive with React and Spring WebFlux - Switzerland JUG 2020
Full Stack Reactive with React and Spring WebFlux - Switzerland JUG 2020Full Stack Reactive with React and Spring WebFlux - Switzerland JUG 2020
Full Stack Reactive with React and Spring WebFlux - Switzerland JUG 2020
 
Deview 2013 mobile browser internals and trends_20131022
Deview 2013 mobile browser internals and trends_20131022Deview 2013 mobile browser internals and trends_20131022
Deview 2013 mobile browser internals and trends_20131022
 
Full Stack Reactive with React and Spring WebFlux - SpringOne 2018
Full Stack Reactive with React and Spring WebFlux - SpringOne 2018Full Stack Reactive with React and Spring WebFlux - SpringOne 2018
Full Stack Reactive with React and Spring WebFlux - SpringOne 2018
 
Apache
ApacheApache
Apache
 
Kick Start your Application Development and Management Strategy
Kick Start your Application Development and Management Strategy Kick Start your Application Development and Management Strategy
Kick Start your Application Development and Management Strategy
 
Full Stack Reactive with React and Spring WebFlux - Dublin JUG 2019
Full Stack Reactive with React and Spring WebFlux - Dublin JUG 2019Full Stack Reactive with React and Spring WebFlux - Dublin JUG 2019
Full Stack Reactive with React and Spring WebFlux - Dublin JUG 2019
 
Full Stack Reactive with React and Spring WebFlux - PWX 2019
Full Stack Reactive with React and Spring WebFlux - PWX 2019Full Stack Reactive with React and Spring WebFlux - PWX 2019
Full Stack Reactive with React and Spring WebFlux - PWX 2019
 
Wso2 product release webinar introducing jaggery
Wso2 product release webinar   introducing jaggeryWso2 product release webinar   introducing jaggery
Wso2 product release webinar introducing jaggery
 
Docker for Java Developers
Docker for Java DevelopersDocker for Java Developers
Docker for Java Developers
 
.NET RDF APIs
.NET RDF APIs.NET RDF APIs
.NET RDF APIs
 
Deploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on ContainersDeploying WSO2 Middleware on Containers
Deploying WSO2 Middleware on Containers
 
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on Containers
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on ContainersWSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on Containers
WSO2ConEU 2016 Tutorial - Deploying WSO2 Middleware on Containers
 
Spring Live Sample Chapter
Spring Live Sample ChapterSpring Live Sample Chapter
Spring Live Sample Chapter
 
Presentation
PresentationPresentation
Presentation
 
JavaScript Modules Done Right
JavaScript Modules Done RightJavaScript Modules Done Right
JavaScript Modules Done Right
 
01 overview-and-setup
01 overview-and-setup01 overview-and-setup
01 overview-and-setup
 
Lecture 19 - Dynamic Web - JAVA - Part 1.ppt
Lecture 19 - Dynamic Web - JAVA - Part 1.pptLecture 19 - Dynamic Web - JAVA - Part 1.ppt
Lecture 19 - Dynamic Web - JAVA - Part 1.ppt
 

More from Matt Raible

Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022Matt Raible
 
Micro Frontends for Java Microservices - Belfast JUG 2022
Micro Frontends for Java Microservices - Belfast JUG 2022Micro Frontends for Java Microservices - Belfast JUG 2022
Micro Frontends for Java Microservices - Belfast JUG 2022Matt Raible
 
Micro Frontends for Java Microservices - Dublin JUG 2022
Micro Frontends for Java Microservices - Dublin JUG 2022Micro Frontends for Java Microservices - Dublin JUG 2022
Micro Frontends for Java Microservices - Dublin JUG 2022Matt Raible
 
Micro Frontends for Java Microservices - Cork JUG 2022
Micro Frontends for Java Microservices - Cork JUG 2022Micro Frontends for Java Microservices - Cork JUG 2022
Micro Frontends for Java Microservices - Cork JUG 2022Matt Raible
 
Comparing Native Java REST API Frameworks - Seattle JUG 2022
Comparing Native Java REST API Frameworks - Seattle JUG 2022Comparing Native Java REST API Frameworks - Seattle JUG 2022
Comparing Native Java REST API Frameworks - Seattle JUG 2022Matt Raible
 
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022Matt Raible
 
Comparing Native Java REST API Frameworks - Devoxx France 2022
Comparing Native Java REST API Frameworks - Devoxx France 2022Comparing Native Java REST API Frameworks - Devoxx France 2022
Comparing Native Java REST API Frameworks - Devoxx France 2022Matt Raible
 
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...Matt Raible
 
Native Java with Spring Boot and JHipster - Garden State JUG 2021
Native Java with Spring Boot and JHipster - Garden State JUG 2021Native Java with Spring Boot and JHipster - Garden State JUG 2021
Native Java with Spring Boot and JHipster - Garden State JUG 2021Matt Raible
 
Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021Matt Raible
 
Web App Security for Java Developers - PWX 2021
Web App Security for Java Developers - PWX 2021Web App Security for Java Developers - PWX 2021
Web App Security for Java Developers - PWX 2021Matt Raible
 
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...Matt Raible
 
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...Matt Raible
 
Web App Security for Java Developers - UberConf 2021
Web App Security for Java Developers - UberConf 2021Web App Security for Java Developers - UberConf 2021
Web App Security for Java Developers - UberConf 2021Matt Raible
 
Native Java with Spring Boot and JHipster - SF JUG 2021
Native Java with Spring Boot and JHipster - SF JUG 2021Native Java with Spring Boot and JHipster - SF JUG 2021
Native Java with Spring Boot and JHipster - SF JUG 2021Matt Raible
 
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...Matt Raible
 
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021Matt Raible
 
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Get Hip with JHipster - Colorado Springs Open Source User Group 2021Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Get Hip with JHipster - Colorado Springs Open Source User Group 2021Matt Raible
 
JHipster and Okta - JHipster Virtual Meetup December 2020
JHipster and Okta - JHipster Virtual Meetup December 2020JHipster and Okta - JHipster Virtual Meetup December 2020
JHipster and Okta - JHipster Virtual Meetup December 2020Matt Raible
 
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020Matt Raible
 

More from Matt Raible (20)

Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
 
Micro Frontends for Java Microservices - Belfast JUG 2022
Micro Frontends for Java Microservices - Belfast JUG 2022Micro Frontends for Java Microservices - Belfast JUG 2022
Micro Frontends for Java Microservices - Belfast JUG 2022
 
Micro Frontends for Java Microservices - Dublin JUG 2022
Micro Frontends for Java Microservices - Dublin JUG 2022Micro Frontends for Java Microservices - Dublin JUG 2022
Micro Frontends for Java Microservices - Dublin JUG 2022
 
Micro Frontends for Java Microservices - Cork JUG 2022
Micro Frontends for Java Microservices - Cork JUG 2022Micro Frontends for Java Microservices - Cork JUG 2022
Micro Frontends for Java Microservices - Cork JUG 2022
 
Comparing Native Java REST API Frameworks - Seattle JUG 2022
Comparing Native Java REST API Frameworks - Seattle JUG 2022Comparing Native Java REST API Frameworks - Seattle JUG 2022
Comparing Native Java REST API Frameworks - Seattle JUG 2022
 
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
 
Comparing Native Java REST API Frameworks - Devoxx France 2022
Comparing Native Java REST API Frameworks - Devoxx France 2022Comparing Native Java REST API Frameworks - Devoxx France 2022
Comparing Native Java REST API Frameworks - Devoxx France 2022
 
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
 
Native Java with Spring Boot and JHipster - Garden State JUG 2021
Native Java with Spring Boot and JHipster - Garden State JUG 2021Native Java with Spring Boot and JHipster - Garden State JUG 2021
Native Java with Spring Boot and JHipster - Garden State JUG 2021
 
Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021
 
Web App Security for Java Developers - PWX 2021
Web App Security for Java Developers - PWX 2021Web App Security for Java Developers - PWX 2021
Web App Security for Java Developers - PWX 2021
 
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
 
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
 
Web App Security for Java Developers - UberConf 2021
Web App Security for Java Developers - UberConf 2021Web App Security for Java Developers - UberConf 2021
Web App Security for Java Developers - UberConf 2021
 
Native Java with Spring Boot and JHipster - SF JUG 2021
Native Java with Spring Boot and JHipster - SF JUG 2021Native Java with Spring Boot and JHipster - SF JUG 2021
Native Java with Spring Boot and JHipster - SF JUG 2021
 
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
 
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
 
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Get Hip with JHipster - Colorado Springs Open Source User Group 2021Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
 
JHipster and Okta - JHipster Virtual Meetup December 2020
JHipster and Okta - JHipster Virtual Meetup December 2020JHipster and Okta - JHipster Virtual Meetup December 2020
JHipster and Okta - JHipster Virtual Meetup December 2020
 
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
 

Recently uploaded

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 

Recently uploaded (20)

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 

Introduction to Apache Roller

  • 1. Introduction to Apache Roller Matt Raible Apache Roller Committer June 2007 1
  • 2. Today’s Agenda Introductions What is Apache Roller? Installing Roller Roller Architecture Blog Customization Server Customization Other Features: Clients and Planet Q and A 2
  • 3. The Source for Apache, Tomcat, Roller, Geronimo & Axis Covalent is the Leading Provider of Support and Services for Apache Software Foundation Open Source Projects, Namely Tomcat, Geronimo, Roller, Axis, & Apache, the World's Leading Web Server* Covalent is One of the Few Sources of Full Commercial Support for Apache, Axis, Roller, Geronimo & Tomcat on a Global Basis Covalent Currently Supports More Than 50% of Fortune 500 and 20% of Global 2000 Companies *62% global Web server marketshare ~Netcraft April 2006 Web Server Survey 3
  • 4. Who is Matt Raible? One of the first Roller users and Committers - started in August 2002 Committer on several open source projects: Apache Roller, AppFuse, XDoclet, Struts Menu, Display Tag Java EE 5.0 and JSF 1.2 Expert Group Member Author: Spring Live (SourceBeat) and contributor to Pro JSP (Apress) 4
  • 5. What is Apache Roller? Apache Roller is a full-featured, multi-user and group-blog server suitable for blog sites large and small Cool Features: Multi-user and Group blogging Comment moderation and spam prevention Complete control over UI with templates Built-in Search RSS 2.0 and Atom 1.0 Support Pluggable Cache and Rendering System 5
  • 6. History Started by Dave Johnson in 2000 as “Homeport” http://rollerweblogger.org/roller/date/20021231 6
  • 7. History of Roller In 2002, Dave ditched EJBs and HAHTsite IDE for open source tools (Ant, Castor, Struts, and Velocity) April 5, 2002: Roller 0.9.0 Released April 17, 2002: O’Reilly Article “Building an Open Source J2EE Weblogger” Published July 31 - August 7, 2002: The world starts blogging with Roller http://rollerweblogger.org/roller/date/20021231 7
  • 8. Roller since 2002 Roller now powers jroller.com, blogs.sun.com, IBM developerWorks blogs and many others Dave hired by Sun to work on Roller full- time in September 2004 Roller began incubation at Apache in June 2005 April 23, 2007: Graduated and released 3.1 8
  • 9. But what is Roller? Roller is a blogging engine Blogs make web publishing easy Everyone can do it No need for IT or Webmasters Tools are in the users hands Feeds make reading blogs easy Feeds are XML-based: RSS or Atom You subscribe to a feed in a Feed Reader Feed Readers are like inboxes for the web 9
  • 10. Posting a Weblog Entry 10
  • 11. Viewing a Weblog Entry 11
  • 12. Viewing a Weblog Entry 12
  • 13. Reading a Weblog Entry 13
  • 14. Why choose Roller? Proven, full-featured blogging solution for big sites Sun, IBM, Yale University, Covalent and ESRI Open Source and Apache Licensed Active and growing community at Apache Standard Java Web Application Architecture 14
  • 15. Why choose Roller? It works great if you know what you’re doing Nice looking example sites: http://blogs.sun.com/greimer http://blogs.sun.com/jonathan http://blogs.usd.edu/jrbethke http://rollerweblogger.org/roller http://raibledesigns.com http://ryandelaplante.com http://blog.covalent.net/roller/covalent/ 15
  • 16. Installing Roller 1. Download Roller 3.1 from http://cwiki.apache.org/confluence/display/ ROLLER/Roller+Downloads 2. Download Hibernate and other JARs from https://roller.dev.java.net/servlets/ProjectD ocumentList?folderID=6962 3. Copy JARs from java.net download into apache-roller-3.1/webapp/roller/WEB- INF/lib 16
  • 17. Installing Roller: Java & MySQL 4. Download and Install Java 5 from http://java.sun.com/javase/downloads 5. Download and install MySQL 5 from http://dev.mysql.com/downloads 6. Create database with files in WEB- INF/dbscripts: mysqladmin -u root -p create roller cd webapp/roller/WEB-INF/dbscripts/mysql mysql -u root -p roller < createdb.sql 17
  • 18. Installing Roller: Tomcat 7. Download and install Tomcat 6 from http://tomcat.apache.org/download-60.cgi 8. Copy apache-roller-3.1/webapp/roller to $CATALINA_HOME/webapps/ROOT 9. Copy activation.jar, mail.jar and mysql-connector- java-5.0.3-bin.jar to $CATALINA_HOME/lib (common/lib for Tomcat 5.x) » continued on next page 18
  • 19. Installing Roller: Tomcat (cont.) 10. Create ROOT/META-INF/context.xml with the following contents: <Context path=quot;quot; reloadable=quot;falsequot; antiJARLocking=quot;truequot; antiResourceLocking=quot;falsequot; allowLinking=quot;truequot;> <Resource name=quot;jdbc/rollerdbquot; auth=quot;Containerquot; type=quot;javax.sql.DataSourcequot; maxActive=quot;20quot; maxIdle=quot;10quot; maxWait=quot;100quot; driverClassName=quot;com.mysql.jdbc.Driverquot; username=quot;rootquot; password=quot;quot; url=quot;jdbc:mysql://localhost/rollerquot;/> <Resource name=quot;mail/Sessionquot; auth=quot;Containerquot; type=quot;javax.mail.Sessionquot; mail.smtp.host=quot;localhostquot; /> </Context> 19
  • 20. Roller Install: Startup Start Tomcat and create your weblog at http://localhost:8080 20
  • 24. Roller Architecture: Enterprise Web UI via Java Servlets and JSP Front controller, Web MVC and Open Session In View patterns Persistence via JDBC Factory, Façade and Data Mapper patterns 24
  • 25. Roller Architecture: Geek Speak Roller Web: Web and UI Layer Editor UI via Struts and JSP, blog and feed rendering via Velocity Feed parsing via ROME, Blogger API via Apache XML-RPC Roller Beans: Business and Persistence Layer Hibernate for DBMS, Lucene for search 25
  • 26. What’s New in Roller 4.0 Easier Theme Customization Easy Installation Java 5, Open JPA and Struts 2 http://cwiki.apache.org/confluence/display/ ROLLER/What%27s+New+in+Roller+4.0 26
  • 27. Weblog Customization Each weblog is defined by user-editable templates A weblog has three required templates: Weblog, _day and _css + any number of user-defined templates Template language: Apache Velocity Other languages available via plugins Data available to templates via Models 27
  • 29. As an end user, you can: Without hacking HTML or CSS: Preview and switch to a new theme Add bookmarks to your blogroll Add categories and tags With some HTML, CSS and template hacking: Customize your blog templates Override Roller macros Create your own blog themes 29
  • 30. Server Customization Single-Sign on with Acegi Security (Yale’s CAS, OpenID) Use Roller Plugins to: Transform entry content at display time Plugin your own models for use in templates Plugin your own template language Add your own comment validation rules 30
  • 31. Developer Customization As a developer, you can use Roller web services from any language Automated blogging via MetaWeblog or Atom Protocol Automate administration via Roller Admin Protocol Add new plugins, written in Java Plugins for: JSPWiki, Emoticon, Technorati, Wikipedia, Google, Textile 31
  • 32. Other Features Planets are useful for aggregating feeds from many sources Weblog clients make it easy to publish and edit entries to your blog 32
  • 33. What’s a Planet? A Community Aggregator Portal-like web application which displays weblog posts from a group of closely related but separately hosted blogs Provides aggregated feeds so that readers may subscribe to the group as a whole Most popular is Planet, which is Python- based 33
  • 35. Roller Planet Roller’s built-in Planet server Standalone Planet server ready to ship Multiple Planets per server Each Planet defines Aggregation Groups Based on Roller Same back-end architecture Same rendering system 35
  • 36. Weblog Clients Windows: w.bloggar Mac: MarsEdit Firefox: Scribefire All: Roller! 36
  • 38. Client Settings URL to Blog: http://yourserver.com Server API URL: http://yourserver.com/roller-services/xmlrpc Many clients have support for Roller, but they’re missing “roller-services” in the Server API URL Username and Password 38
  • 39. Questions? Roller User Mailing List: user@roller.apache.org Covalent Support: http://support.covalent.net 925/974-8800/800/444-1935 support@covalent.net 39