<?xml version="1.0" encoding='utf-8'?>
<!-- 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
-->
<?xml-stylesheet type="text/xsl" href="https://rollerweblogger.org/roller-ui/styles/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom">
    <title type="html">Blogging Roller</title>
    <subtitle type="html">Dave Johnson on open web technologies, social software and software development</subtitle>
    <id>https://rollerweblogger.org/roller/feed/entries/atom</id>
        <link rel="self" type="application/atom+xml" href="https://rollerweblogger.org/roller/feed/entries/atom?tags=plugins" />
    <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/" />
    <updated>2026-06-08T23:12:31+00:00</updated>
    <generator uri="http://roller.apache.org" version="6.1.5">Apache Roller</generator>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/roller_plugins</id>
        <title type="html">Ten types of plugins supported by Roller 4.0</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/roller_plugins"/>
        <published>2007-10-17T10:12:31+00:00</published>
        <updated>2010-04-28T04:53:01+00:00</updated> 
        <category term="Roller" label="Roller" />
        <category term="java" scheme="http://roller.apache.org/ns/tags/" />
        <category term="plugins" scheme="http://roller.apache.org/ns/tags/" />
        <category term="roller" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&amp;lt;a href=&amp;quot;http://cwiki.apache.org/confluence/display/ROLLER/What%27s+New+in+Roller+4.0
&amp;quot;&amp;gt;&lt;img src=&quot;http://rollerweblogger.org/roller/resource/roller-cartoon-140x126.png&quot; align=&quot;right&quot; alt=&quot;Roller 4.0 logo&quot;&gt;
I&amp;#39;m working on documenting the Roller plugin system, comparing it to similar systems (e.g. &lt;a href=&quot;http://codex.wordpress.org/Plugin_API&quot;&gt;Wordpress&lt;/a&gt; and &lt;a href=&quot;http://confluence.atlassian.com/display/DOC/Writing+Confluence+Plugins&quot;&gt;Confluence&lt;/a&gt;) and coming up with some proposals for improvements. 
As part of that work, I&amp;#39;ve come up with a list of the plugin types supported by &lt;a href=&quot;http://cwiki.apache.org/confluence/display/ROLLER/What%27s+New+in+Roller+4.0&quot;&gt;Roller 4.0&lt;/a&gt;.&amp;nbsp;</summary>
        <content type="html">&lt;p&gt;&amp;lt;a href=&amp;quot;http://cwiki.apache.org/confluence/display/ROLLER/What%27s+New+in+Roller+4.0
&amp;quot;&amp;gt;&lt;img src=&quot;http://rollerweblogger.org/roller/resource/roller-cartoon-140x126.png&quot; align=&quot;right&quot; alt=&quot;Roller 4.0 logo&quot;&gt;
I&amp;#39;m working on documenting the Roller plugin system, comparing it to similar systems (e.g. &lt;a href=&quot;http://codex.wordpress.org/Plugin_API&quot;&gt;Wordpress&lt;/a&gt; and &lt;a href=&quot;http://confluence.atlassian.com/display/DOC/Writing+Confluence+Plugins&quot;&gt;Confluence&lt;/a&gt;) and coming up with some proposals for improvements. 
As part of that work, I&amp;#39;ve come up with a list of the plugin types supported by &lt;a href=&quot;http://cwiki.apache.org/confluence/display/ROLLER/What%27s+New+in+Roller+4.0&quot;&gt;Roller 4.0&lt;/a&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;b&gt;Page Model Plugin&lt;/b&gt; (Interface: &lt;a href=&quot;http://svn.apache.org/viewvc/roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/rendering/model/PageModel.java?view=markup&quot;&gt;PageModel&lt;/a&gt;)
&lt;br&gt;Allows you to make new objects available to Roller page templates, providing a way to display external data in the blog pages and feeds generated by Roller.

&lt;li&gt;&lt;b&gt;Weblog Editor UI Plugin&lt;/b&gt; (Interface: &amp;lt;a href=
&amp;quot;http://svn.apache.org/viewvc/roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/core/plugins/WeblogEntryEditor.java?view=markup&amp;quot;&amp;gt;
WeblogEntryEditor)&lt;br&gt; Plugin your own Rich Text or other type of editor into the New/Edit Entry page in the Roller web UI. Roller comes with two such plugins: a plain-text editor and a rich-text editor based on Xinha.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Weblog Entry Plugin&lt;/b&gt; (Interface: &amp;lt;a href=
&amp;quot;http://svn.apache.org/viewvc/roller/trunk/weblogger-business/src/main/java/org/apache/roller/weblogger/business/plugins/entry/WeblogEntryPlugin.java?view=markup&amp;quot;&amp;gt;
WeblogEntryPlugin)&lt;br&gt; Allows you to transform weblog entry content at the time it is displayed in a weblog page or a feed. Once you&amp;#39;ve installed your entry plugin, blog authors can enable and disable it on a per entry basis. For example, if you&amp;#39;ve got the Wiki Plugin installed then bloggers can choose to blog using wiki syntax and the plugin will transform the wiki syntax to HTML on display.&lt;/li&gt;
&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Weblog Entry Comment Plugin&lt;/b&gt; (Interface: &amp;lt;a href=
&amp;quot;http://svn.apache.org/viewvc/roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/business/plugins/comment/WeblogEntryCommentPlugin.java?view=markup&amp;quot;&amp;gt;
WeblogEntryCommentPlugin)&lt;br&gt; Allows you to transform comment content at the time it is displayed in a weblog page or feed. By default, Roller uses a link-markup plugin to turn URLs into clickable links, an auto-format plugin to add paragraph breaks and a safe-subset plugin to strip out all but the safest HTML tags. You can add new comment formatter plugins or replace the existing ones. &lt;/li&gt;

&lt;li&gt;&lt;b&gt;Comment Authenticator Plugin&lt;/b&gt; (Interface: &amp;lt;a href=
&amp;quot;http://svn.apache.org/viewvc/roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/CommentAuthenticator.java?view=markup&amp;quot;&amp;gt;
CommentAuthenticator)&lt;br&gt; Plugin your own comment authenticator to replace the math-question test used in most Roller blogs. Allows you to add some additional HTML to the comment form and some server-side logic for authenticating comment posts. You could add a CAPTCHA test this way, but I&amp;#39;m not sure there&amp;#39;s enough pluggability to support OpenID authentication. &lt;/li&gt;

&lt;li&gt;&lt;b&gt;Comment Validator Plugin&lt;/b&gt; (Interface: &amp;lt;a href=
&amp;quot;http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/plugins/comments/CommentValidator.java?view=markup&amp;quot;&amp;gt;
CommentValidator)&lt;br&gt; Allows you to add additional comment spam filters to Roller. Your filter can examine each comment posted and report to Roller whether it appears to be spam or not. Roller includes an Akismet validator, a too-many-links validator and a trackback validator. &lt;/li&gt;

&lt;li&gt;&lt;b&gt;Renderer Plugin&lt;/b&gt; (Interfaces: &amp;lt;a href=
&amp;quot;http://svn.apache.org/viewvc/roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/rendering/RendererFactory.java?view=markup&amp;quot;&amp;gt;
RendererFactory and &amp;lt;a href=
&amp;quot;http://svn.apache.org/viewvc/roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/rendering/Renderer.java?view=markup&amp;quot;&amp;gt;
Renderer)&lt;br&gt; Allow you to plugin a renderer for a specific template language name. Roller&amp;#39;s stock templates and theme all use the Velocity template language, but by plugging in your own renderer you can author templates in whatever JVM based language you wish. For example, plugins exist for authoring Roller templates in JavaScript, JRuby and Groovy Server Pages (GSP) languages. &lt;/li&gt;

&lt;li&gt;&lt;b&gt;Request Mapper Plugin&lt;/b&gt; (Interface: &amp;lt;a href=
&amp;quot;http://svn.apache.org/viewvc/roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/ui/rendering/RequestMapper.java?view=markup&amp;quot;&amp;gt;
RequestMapper)&lt;br&gt; Allows you to plugin to Roller&amp;#39;s URL structure and request handling system, like adding a Servlet but not requiring you to edit web.xml.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Cache system Plugin&lt;/b&gt; (Interfaces: &amp;lt;a href=
&amp;quot;http://svn.apache.org/viewvc/roller/trunk/weblogger-business/src/main/java/org/apache/roller/weblogger/util/cache/CacheFactory.java?view=markup&amp;quot;&amp;gt;
CacheFactory and &amp;lt;a href=
&amp;quot;http://svn.apache.org/viewvc/roller/trunk/weblogger-business/src/main/java/org/apache/roller/weblogger/util/cache/Cache.java?view=markup&amp;quot;&amp;gt;
Cache)&lt;br&gt; Plugin your own cache system to replace or augment Roller&amp;#39;s in-memory cache system. For example, you might want to plugin memcached as your distributed page/feed cache as Sun does for blogs.sun.com.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Repeatable Task&lt;/b&gt; (Classes to extend: &amp;lt;a href=
&amp;quot;http://svn.apache.org/viewvc/roller/trunk/weblogger-business/src/main/java/org/apache/roller/weblogger/business/runnable/RollerTask.java?revision=559911&amp;view=markup&amp;quot;&amp;gt;
RollerTask or &amp;lt;a href=
&amp;quot;http://svn.apache.org/viewvc/roller/trunk/weblogger-business/src/main/java/org/apache/roller/weblogger/business/runnable/RollerTaskWithLeasing.java?revision=559911&amp;view=markup&amp;quot;&amp;gt;
RollerTaskWithLeasing)&lt;br&gt; Roller runs a number of tasks behind the scenes and you can add your own tasks and configure when they start and how often they run. There&amp;#39;s also a lease-system for working in a distributed environment.&lt;/li&gt;

&lt;/ol&gt;

&lt;p&gt;UPDATE: The &lt;a href=&quot;http://people.apache.org/~snoopdave/presentations/advanced-roller-aceu2008.pdf&quot;&gt;Advanced Roller presentation from ApacheCon EU 2008&lt;/a&gt; covers many of the different types of plugins above and gives examples, configuration tips, etc.&lt;/p&gt;


</content>
    </entry>
</feed>

