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

Introduction to Apache Roller - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

  • Upload
    dinhnga

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introduction to Apache Roller - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

1

Introduction to Apache RollerMatt Raible

Apache Roller CommitterJune 2007

Page 2: Introduction to Apache Roller - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

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 - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

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 - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

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 - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

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 - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

6

History

Started by Dave Johnson in 2000 as“Homeport”

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

Page 7: Introduction to Apache Roller - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

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 - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

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 - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

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 - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

10

Posting a Weblog Entry

Page 11: Introduction to Apache Roller - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

11

Viewing a Weblog Entry

Page 12: Introduction to Apache Roller - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

12

Viewing a Weblog Entry

Page 13: Introduction to Apache Roller - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

13

Reading a Weblog Entry

Page 14: Introduction to Apache Roller - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

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 - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

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 - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

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 - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

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 - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

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 - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

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 - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

20

Roller Install: Startup

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

Page 21: Introduction to Apache Roller - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

21

Create a User

Page 22: Introduction to Apache Roller - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

22

Create a Weblog

Page 23: Introduction to Apache Roller - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

23

The obligatory first post

Page 24: Introduction to Apache Roller - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

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 - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

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 - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

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 - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

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 - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

28

Example Weblog Template

Page 29: Introduction to Apache Roller - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

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 - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

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 - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

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 - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

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 - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

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 - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

34

Example Planets

Page 35: Introduction to Apache Roller - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

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 - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

36

Weblog Clients

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

Page 37: Introduction to Apache Roller - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

37

Weblog Client Screenshots

Page 38: Introduction to Apache Roller - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

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 - Raible Designsstatic.raibledesigns.com/.../IntroductionToApacheRoller.pdf · Menu, Display Tag Java EE 5.0 and JSF ... Comment moderation and spam

39

Questions?

Roller User Mailing List:[email protected]

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