Introduction to Apache Roller

Post on 17-May-2015

12.801 views 0 download

Tags:

description

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

Transcript of Introduction to Apache Roller

1

Introduction to Apache RollerMatt Raible

Apache Roller CommitterJune 2007

2

Today’s Agenda

IntroductionsWhat is Apache Roller?Installing RollerRoller Architecture

Blog CustomizationServer Customization

Other Features: Clients and PlanetQ and A

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

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)

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

6

History

Started by Dave Johnson in 2000 as“Homeport”

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

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

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

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

10

Posting a Weblog Entry

11

Viewing a Weblog Entry

12

Viewing a Weblog Entry

13

Reading a Weblog Entry

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

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/

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

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

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

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>

20

Roller Install: Startup

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

21

Create a User

22

Create a Weblog

23

The obligatory first post

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

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

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

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

28

Example Weblog Template

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

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

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

32

Other Features

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

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

34

Example Planets

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

36

Weblog Clients

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

37

Weblog Client Screenshots

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

39

Questions?

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

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