Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
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:[email protected]
Covalent Support:http://support.covalent.net925/974-8800/800/[email protected]