Introduction to Apache Roller

39
1 Introduction to Apache Roller Matt Raible Apache Roller Committer June 2007

description

http://raibledesigns.com/rd/entry/webinar_on_wednesday_introduction_to

Transcript of Introduction to Apache Roller

Page 1: Introduction to Apache Roller

1

Introduction to Apache RollerMatt Raible

Apache Roller CommitterJune 2007

Page 2: Introduction to Apache Roller

2

Today’s Agenda

IntroductionsWhat is Apache Roller?Installing RollerRoller Architecture

Blog CustomizationServer Customization

Other Features: Clients and PlanetQ and A

Page 3: Introduction to Apache Roller

3

The Source for Apache, Tomcat,Roller, Geronimo & Axis

Covalent is the Leading Provider of Supportand Services for Apache SoftwareFoundation Open Source Projects, NamelyTomcat, Geronimo, Roller, Axis, & Apache,the World's Leading Web Server*Covalent is One of the Few Sources of FullCommercial Support for Apache, Axis, Roller,Geronimo & Tomcat on a Global BasisCovalent Currently Supports More Than 50%of Fortune 500 and 20% of Global 2000Companies

*62% global Web server marketshare ~Netcraft April 2006 Web Server Survey

Page 4: Introduction to Apache Roller

4

Who is Matt Raible?

One of the first Roller users andCommitters - started in August 2002Committer on several open source projects:Apache Roller, AppFuse, XDoclet, StrutsMenu, Display TagJava EE 5.0 and JSF 1.2 Expert GroupMember

Author: Spring Live (SourceBeat) andcontributor to Pro JSP (Apress)

Page 5: Introduction to Apache Roller

5

What is Apache Roller?

Apache Roller is a full-featured, multi-user andgroup-blog server suitable for blog sites large andsmallCool Features:

Multi-user and Group bloggingComment moderation and spam preventionComplete control over UI with templatesBuilt-in SearchRSS 2.0 and Atom 1.0 SupportPluggable Cache and Rendering System

Page 6: Introduction to Apache Roller

6

History

Started by Dave Johnson in 2000 as“Homeport”

http://rollerweblogger.org/roller/date/20021231

Page 7: Introduction to Apache Roller

7

History of Roller

In 2002, Dave ditched EJBs and HAHTsiteIDE for open source tools (Ant, Castor,Struts, and Velocity)April 5, 2002: Roller 0.9.0 ReleasedApril 17, 2002: O’Reilly Article “Building anOpen Source J2EE Weblogger” PublishedJuly 31 - August 7, 2002: The world startsblogging with Roller

http://rollerweblogger.org/roller/date/20021231

Page 8: Introduction to Apache Roller

8

Roller since 2002

Roller now powers jroller.com,blogs.sun.com, IBM developerWorks blogsand many othersDave hired by Sun to work on Roller full-time in September 2004Roller began incubation at Apache in June2005April 23, 2007: Graduated and released 3.1

Page 9: Introduction to Apache Roller

9

But what is Roller?

Roller is a blogging engineBlogs make web publishing easy

Everyone can do itNo need for IT or WebmastersTools are in the users hands

Feeds make reading blogs easyFeeds are XML-based: RSS or AtomYou subscribe to a feed in a Feed ReaderFeed Readers are like inboxes for the web

Page 10: Introduction to Apache Roller

10

Posting a Weblog Entry

Page 11: Introduction to Apache Roller

11

Viewing a Weblog Entry

Page 12: Introduction to Apache Roller

12

Viewing a Weblog Entry

Page 13: Introduction to Apache Roller

13

Reading a Weblog Entry

Page 14: Introduction to Apache Roller

14

Why choose Roller?

Proven, full-featured blogging solution for bigsitesUsed by Sun, IBM, Yale University,Covalent and ESRI

Open Source and Apache LicensedActive and growing community at ApacheStandard Java Web Application Architecture

Page 15: Introduction to Apache Roller

15

Why choose Roller?

It works great if you know what you’re doingNice looking example sites:

http://blogs.sun.com/greimerhttp://blogs.sun.com/jonathanhttp://blogs.usd.edu/jrbethkehttp://rollerweblogger.org/rollerhttp://raibledesigns.comhttp://ryandelaplante.comhttp://blog.covalent.net/roller/covalent/

Page 16: Introduction to Apache Roller

16

Installing Roller

1. Download Roller 3.1 fromhttp://cwiki.apache.org/confluence/display/ROLLER/Roller+Downloads

2. Download Hibernate and other JARs fromhttps://roller.dev.java.net/servlets/ProjectDocumentList?folderID=6962

3. Copy JARs from java.net download intoapache-roller-3.1/webapp/roller/WEB-INF/lib

Page 17: Introduction to Apache Roller

17

Installing Roller: Java & MySQL

4. Download and Install Java 5 fromhttp://java.sun.com/javase/downloads

5. Download and install MySQL 5 fromhttp://dev.mysql.com/downloads

6. Create database with files in WEB-INF/dbscripts:mysqladmin -u root -p create rollercd webapp/roller/WEB-INF/dbscripts/mysqlmysql -u root -p roller < createdb.sql

Page 18: Introduction to Apache Roller

18

Installing Roller: Tomcat

7. Download and install Tomcat 6 fromhttp://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

Page 19: Introduction to Apache Roller

19

Installing Roller: Tomcat (cont.)

10.Create ROOT/META-INF/context.xml with thefollowing contents:

<Context path="" reloadable="false" antiJARLocking="true" antiResourceLocking="false" allowLinking="true">

<Resource name="jdbc/rollerdb" auth="Container" type="javax.sql.DataSource" maxActive="20" maxIdle="10" maxWait="100" driverClassName="com.mysql.jdbc.Driver" username="root" password="" url="jdbc:mysql://localhost/roller"/>

<Resource name="mail/Session" auth="Container" type="javax.mail.Session" mail.smtp.host="localhost" /></Context>

Page 20: Introduction to Apache Roller

20

Roller Install: Startup

Start Tomcat and create your weblog athttp://localhost:8080

Page 21: Introduction to Apache Roller

21

Create a User

Page 22: Introduction to Apache Roller

22

Create a Weblog

Page 23: Introduction to Apache Roller

23

The obligatory first post

Page 24: Introduction to Apache Roller

24

Roller Architecture: Enterprise

Web UI via Java Servlets and JSPFront controller, Web MVC and Open SessionIn View patterns

Persistence via JDBCFactory, Façade and Data Mapper patterns

Page 25: Introduction to Apache Roller

25

Roller Architecture: Geek Speak

Roller Web: Web and UI LayerEditor UI via Struts and JSP, blog and feed renderingvia VelocityFeed parsing via ROME, Blogger API via ApacheXML-RPC

Roller Beans: Business and Persistence LayerHibernate for DBMS, Lucene for search

Page 26: Introduction to Apache Roller

26

What’s New in Roller 4.0

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

Page 27: Introduction to Apache Roller

27

Weblog Customization

Each weblog is defined by user-editabletemplatesA weblog has three required templates:Weblog, _day and _css

+ any number of user-defined templatesTemplate language: Apache Velocity

Other languages available via pluginsData available to templates via Models

Page 28: Introduction to Apache Roller

28

Example Weblog Template

Page 29: Introduction to Apache Roller

29

As an end user, you can:

Without hacking HTML or CSS:Preview and switch to a new themeAdd bookmarks to your blogrollAdd categories and tags

With some HTML, CSS and templatehacking:

Customize your blog templatesOverride Roller macrosCreate your own blog themes

Page 30: Introduction to Apache Roller

30

Server Customization

Single-Sign on with Acegi Security (Yale’sCAS, OpenID)Use Roller Plugins to:

Transform entry content at display timePlugin your own models for use intemplatesPlugin your own template languageAdd your own comment validation rules

Page 31: Introduction to Apache Roller

31

Developer Customization

As a developer, you can use Roller webservices from any language

Automated blogging via MetaWeblog orAtom ProtocolAutomate administration via RollerAdmin Protocol

Add new plugins, written in JavaPlugins for: JSPWiki, Emoticon,Technorati, Wikipedia, Google, Textile

Page 32: Introduction to Apache Roller

32

Other Features

Planets are useful for aggregating feedsfrom many sourcesWeblog clients make it easy to publish andedit entries to your blog

Page 33: Introduction to Apache Roller

33

What’s a Planet?

A Community AggregatorPortal-like web application which displaysweblog posts from a group of closelyrelated but separately hosted blogsProvides aggregated feeds so that readersmay subscribe to the group as a wholeMost popular is Planet, which is Python-based

Page 34: Introduction to Apache Roller

34

Example Planets

Page 35: Introduction to Apache Roller

35

Roller Planet

Roller’s built-in Planet serverStandalone Planet server ready to ship

Multiple Planets per serverEach Planet defines AggregationGroupsBased on Roller

Same back-end architectureSame rendering system

Page 36: Introduction to Apache Roller

36

Weblog Clients

Windows: w.bloggarMac: MarsEditFirefox: ScribefireAll: Roller!

Page 37: Introduction to Apache Roller

37

Weblog Client Screenshots

Page 38: Introduction to Apache Roller

38

Client Settings

URL to Blog: http://yourserver.comServer API URL:http://yourserver.com/roller-services/xmlrpcMany clients have support for Roller, butthey’re missing “roller-services” in theServer API URLUsername and Password

Page 39: Introduction to Apache Roller

39

Questions?

Roller User Mailing List:[email protected]

Covalent Support:http://support.covalent.net925/974-8800/800/[email protected]