<?xml version="1.0" encoding="utf-8"?>
<!-- 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
-->
<?xml-stylesheet type="text/xsl" href="https://rollerweblogger.org/roller-ui/styles/rss.xsl" media="screen"?><rss version="2.0" 
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:atom="http://www.w3.org/2005/Atom" >
<channel>
  <title>Blogging Roller</title>
  <link>https://rollerweblogger.org/roller/</link>
    <atom:link rel="self" type="application/rss+xml" href="https://rollerweblogger.org/roller/feed/entries/rss?tags=propono" />
  <description>Dave Johnson on open web technologies, social software and software development</description>
  <language>en-us</language>
  <copyright>Copyright 2026</copyright>
  <lastBuildDate>Mon, 18 May 2026 08:23:39 +0000</lastBuildDate>
  <generator>Apache Roller 6.1.5</generator>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/apache_roller_5_0_rc1</guid>
    <title>Apache Roller 5.0 RC1</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/apache_roller_5_0_rc1</link>
    <pubDate>Mon, 3 May 2010 08:39:13 +0000</pubDate>
    <category>Roller</category>
    <category>atompub</category>
    <category>propono</category>
    <category>rome</category>
<description>&lt;p&gt;It&amp;#39;s been a while since the BETA (over 6 months) but we &lt;a href=&quot;http://markmail.org/message/kmeuidvtjzhbdznn&quot;&gt;now have a release candidate for Apache Roller 5.0&lt;/a&gt; available for testing. This site is running Apache Roller 5.0 RC1 right now, as you can see in the itty bitty screenshot below:&lt;/p&gt;



&lt;p&gt;Here&amp;#39;s a &lt;a href=&quot;https://cwiki.apache.org/confluence/display/ROLLER/What&apos;s+new+in+Roller+5.0&quot;&gt;What&amp;#39;s New in Roller 5.0&lt;/a&gt; page that summarizes what has changed since 4.0. One thing I forgot to mention on that page was that Roller now uses ROME Propono 1.0 for AtomPub and Roller 5.0&amp;#39;s AtomPub support has been successfully tested with &lt;a href=&quot;http://www.red-sweater.com/marsedit/&quot;&gt;MarsEdit&lt;/a&gt; and &lt;a href=&quot;http://windowslivewriter.spaces.live.com/&quot;&gt;Windows Live Writer&lt;/a&gt;.&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/oauth_for_rome_propono</guid>
    <title>OAuth for ROME Propono</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/oauth_for_rome_propono</link>
    <pubDate>Tue, 24 Mar 2009 12:00:00 +0000</pubDate>
    <category>Feeds</category>
    <category>atompub</category>
    <category>oauth</category>
    <category>propono</category>
    <category>roller</category>
    <category>rome</category>
<description>&lt;a href=&quot;https://rome.dev.java.net/&quot;&gt;
&amp;lt;img src=&amp;quot;http://rollerweblogger.org/roller/resource/rome-logo.png&amp;quot; 
alt=&amp;quot;ROME logo&amp;quot; align=&amp;quot;right&amp;quot; vspace=&amp;quot;10px&amp;quot; hspace=&amp;quot;10px&amp;quot; /&amp;gt;
&lt;/a&gt;

&lt;p&gt;Yesterday I wrote about &lt;a href=&quot;http://rollerweblogger.org/roller/entry/oauth_for_roller&quot;&gt;OAuth support in the upcoming Roller 5.0 release&lt;/a&gt;. Today I&amp;#39;m following up with a post about &lt;a href=&quot;http://oauth.net&quot;&gt;OAuth&lt;/a&gt; support in &lt;a href=&quot;http://wiki.java.net/bin/view/Javawsxml/RomePropono&quot;&gt;ROME Propono&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As you may remember, ROME Propono is a subproject of &lt;a href=&quot;http://rome.dev.java.net&quot;&gt;ROME&lt;/a&gt;, the Java-based RSS/Atom feed library. ROME Propono includes an &lt;a href=&quot;http://www.atomenabled.org/developers/protocol/&quot;&gt;AtomPub&lt;/a&gt; server library and an AtomPub client. I added OAuth support to the AtomPub client and in this post, I&amp;#39;ll show how you can use it to post to the Roller 5.0-dev (i.e. the snapshot build that I made available yesterday).&lt;/p&gt;

&lt;h4&gt;ROME 1.0 and coming soon: ROME Propono 1.0&lt;/h4&gt;

&lt;p&gt;In case you haven&amp;#39;t already heard, thanks to the recent hard work of Nick Lothian, &lt;a href=&quot;http://nicklothian.com/blog/2009/03/11/rome-10-released&quot;&gt;ROME 1.0 is now available&lt;/a&gt;. You can find downloads at &lt;a href=&quot;http://rome.dev.java.net&quot;&gt;rome.dev.java.net&lt;/a&gt; and a list of changes in the &lt;a href=&quot;http://wiki.java.net/bin/view/Javawsxml/RomeChangesLog&quot;&gt;Change Log&lt;/a&gt; there. To celebrate this momentous event, I&amp;#39;m planning on releasing ROME Propono 1.0 as well, and in preparation, I&amp;#39;ve made a release candidate available. The new Propono includes ROME 1.0 and support for OAuth. You can get it via the links below:&lt;/p&gt;

&lt;p style=&quot;margin-left:2em;&quot;&gt;
    &lt;a href=&quot;https://rome.dev.java.net/source/browse/*checkout*/rome/www/dist/rome-propono-1.0RC1.tar.gz&quot;&gt;rome-propono-1.0RC1.tar.gz&lt;/a&gt; (2.0 mb)
&lt;/p&gt;

&lt;p style=&quot;margin-left:2em;&quot;&gt;
    &lt;a href=&quot;https://rome.dev.java.net/source/browse/*checkout*/rome/www/dist/rome-propono-1.0RC1.zip&quot;&gt;rome-propono-1.0RC1.zip&lt;/a&gt; (3 mb)
&lt;/p&gt;


&lt;h4&gt;Posting to Roller via AtomPub and OAuth&lt;/h4&gt;

&lt;p&gt;To use the Propono AtomPub client, you place the Propono jars in your Java VM classpath and then call the &lt;code&gt;AtomClientFactory&lt;/code&gt; to get started, as described in the &lt;a href=&quot;https://rome.dev.java.net/apidocs/subprojects/propono/1.0/com/sun/syndication/propono/atom/client/package-summary.html&quot;&gt;ROME Propono 1.0 Javadocs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Below is a &lt;a href=&quot;http://groovy.codehaus.org/&quot;&gt;Groovy&lt;/a&gt; example that shows how to post a blog entry to Roller via AtomPub and OAuth. You can get the consumer key, secret and URLs you need to call your instance of Roller from the OAuth Credentials page in the Roller admin interface.&lt;/p&gt;

&lt;pre&gt;

  import com.sun.syndication.propono.atom.client.*
  import com.sun.syndication.feed.atom.*

  def authStrategy = new OAuthStrategy(
    &amp;quot;roller&amp;quot;,                               // username
    &amp;quot;55132608a2fb68816bcd3d1caeafc933&amp;quot;,     // consumer key
    &amp;quot;bb420783-fdea-4270-ab83-36445c18c307&amp;quot;, // consumer secret
    &amp;quot;HMAC-SHA1&amp;quot;,                            // key type
    &amp;quot;http://blogs.example.com/roller-services/oauth/requestToken&amp;quot;,
    &amp;quot;http://blogs.example.com/roller-services/oauth/authorize&amp;quot;,
    &amp;quot;http://blogs.example.com/roller-services/oauth/accessToken&amp;quot;)

  // get the AtomPub service
  def appService = AtomClientFactory.getAtomService(
    &amp;quot;http://blogs.example.com/roller-services/app&amp;quot;, authStrategy)

  // find workspace of my blog
  def blog = appService.findWorkspace(&amp;quot;Blogging Roller&amp;quot;)

  // find collecton that will accept entries
  def entries = blog.findCollection(null, &amp;quot;application/atom+xml;type=entry&amp;quot;)

  // create and post an entry
  def entry = entries.createEntry()
  entry.title = &amp;quot;TestPost&amp;quot;
  def content = new Content()
  content.setValue(&amp;quot;This is a test post. w00t!&amp;quot;)
  entry.setContent([content])
  entries.addEntry(entry)

&lt;/pre&gt;


&lt;p&gt;If you have questions or feedback about ROME Propono 1.0 RC1, please post them to the &lt;a href=&quot;https://rome.dev.java.net/servlets/ProjectMailingListList&quot;&gt;ROME dev mail list&lt;/a&gt; and I&amp;#39;ll do my best to respond there.&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/atom_protocol_has_been_finalized</guid>
    <title>Atom protocol has been finalized</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/atom_protocol_has_been_finalized</link>
    <pubDate>Tue, 24 Jul 2007 17:21:09 +0000</pubDate>
    <category>Roller</category>
    <category>atomprotocol</category>
    <category>java</category>
    <category>propono</category>
    <category>roller</category>
<description>&lt;p&gt;Good news today from Tim Bray: &lt;a href=&quot;http://www.tbray.org/ongoing/When/200x/2007/07/24/Atom-is-Finished&quot;&gt;Atom protocol has been finalized&lt;/a&gt;. The final version of the spec is going to be &lt;a href=&quot;http://bitworking.org/projects/atom/draft-ietf-atompub-protocol-17.html&quot;&gt;Atom protocol draft #17&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Instead of staying up until the dawn hours (not naming names) reading the final Harry Potter book, I spent most of the weekend working on bringing &lt;a href=&quot;http://wiki.java.net/bin/view/Javawsxml/RomePropono&quot;&gt;Propono&lt;/a&gt; in-line with the draft #17 and in particular adding support for out-of-line categories and relative URIs. I&amp;#39;ve got code ready to commit that passes Tim&amp;#39;s &lt;a href=&quot;http://www.tbray.org/ongoing/When/200x/2006/08/11/Meet-the-Ape&quot;&gt;Ape&lt;/a&gt; tests, so hopefully we&amp;#39;ll have a new Propono 0.6 release ready very soon that supports the final spec.&lt;/p&gt;

&lt;p&gt;Roller&amp;#39;s Atom protocol implementation is already up to date and passing Ape tests, so Roller 4.0 will be Atom protocol ready. I still need to do a little work to document the setup.&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/app_interop_follow_up</guid>
    <title>APP interop follow-up</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/app_interop_follow_up</link>
    <pubDate>Sun, 22 Apr 2007 19:59:19 +0000</pubDate>
    <category>Java</category>
    <category>app</category>
    <category>atom</category>
    <category>java</category>
    <category>propono</category>
    <category>rome</category>
<description>&lt;p&gt;Following up on the APP interop event last week, here are the &lt;a href=&quot;http://wiki.java.net/bin/view/Javawsxml/RomePropono&quot;&gt;ROME Propono&lt;/a&gt; APP client issues we found:&amp;nbsp;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://rome.dev.java.net/issues/show_bug.cgi?id=66&quot;&gt;ROME #66 BUG - don&amp;#39;t expect entry to be returned from update (FIXED)&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;
&lt;a href=&quot;https://rome.dev.java.net/issues/show_bug.cgi?id=67&quot;&gt;
ROME #67 BUG - handle relative URIs in Service Doc
&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;
&lt;a href=&quot;https://rome.dev.java.net/issues/show_bug.cgi?id=68&quot;&gt;
ROME #68 BUG - handle out-of-line categories in Service Doc
&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://rome.dev.java.net/issues/show_bug.cgi?id=69&quot;&gt;
ROME #69 RFE - use pluggable auth. scheme w/Google and WSSE support&lt;br&gt;
&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;





&lt;p&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;/p&gt;&lt;p&gt;And here are the Roller APP server issues:&lt;br&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://opensource.atlassian.com/projects/roller/browse/ROL-1393&quot;&gt;
ROL-1393 BUG - attributes in service doc should not be namespaced (FIXED)&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;
&lt;a href=&quot;http://opensource.atlassian.com/projects/roller/browse/ROL-1394&quot;&gt;
ROL-1394 BUG - wrong content-type for service doc (FIXED)&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;
&lt;a href=&quot;http://opensource.atlassian.com/projects/roller/browse/ROL-1395&quot;&gt;
ROL-1395 BUG - support slugs for entries too&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;
&lt;a href=&quot;http://opensource.atlassian.com/projects/roller/browse/ROL-1396&quot;&gt;
ROL-1396 RFE - RSD support, auto-discovery for APP&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://opensource.atlassian.com/projects/roller/browse/ROL-1397&quot;&gt;
ROL-1397 BUG - null byte 0x0 getting into entry contents&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;I plan on fixing the Roller issues for this summer&amp;#39;s Roller 4.0 release. I won&amp;#39;t have time to fix the Propono issues for the upcoming Propono 0.5 release (due this week), so they&amp;#39;ll be in 0.6 sometime after JavaOne.&lt;br&gt;&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/javaone_beyond_blogging_feeds_in</guid>
    <title>@JavaOne: Beyond Blogging: Feeds in Action</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/javaone_beyond_blogging_feeds_in</link>
    <pubDate>Wed, 4 Apr 2007 17:32:34 +0000</pubDate>
    <category>Java</category>
    <category>atom</category>
    <category>feeds</category>
    <category>java</category>
    <category>javaone</category>
    <category>propono</category>
    <category>rest</category>
    <category>rss</category>
<atom:summary type="html">As promised here&amp;#39;s some more info on my &lt;a href=&quot;http://java.sun.com/javaone/sf/&quot;&gt;JavaOne 2007&lt;/a&gt;
session. It&amp;#39;s based in part on the Beyond Blogging presentation that I
presented to a tiny audience at the local Tri-XML conference last year.
Tim Bray didn&amp;#39;t attend my talk, but he read the slides and &lt;a href=&quot;http://www.tbray.org/ongoing/When/200x/2006/07/29/Johnson-on-Feeds&quot;&gt;called&lt;/a&gt;
them &amp;quot;the single best introduction and overview Iâ&#128;&#153;ve ever seen
about feeds and syndication and RSS and Atom and all that stuff.&amp;quot; I
shouldn&amp;#39;t brag. Had he attended the talk he might have had an entirely
different opinion, who knows. Anyhow, the presentation has been updated,
stream-lined and large portions rewritten to cover &lt;a href=&quot;http://rome.dev.java.net/&quot;&gt;ROME&lt;/a&gt; and ROME&amp;#39;s new Propono sub-project.&amp;nbsp;</atom:summary><description>&lt;p&gt;As &lt;a href=&quot;http://rollerweblogger.org/roller/entry/apacheconeu_roller_and_blogs_as&quot;&gt;promised&lt;/a&gt; here&amp;#39;s some more info on my &lt;a href=&quot;http://java.sun.com/javaone/sf/&quot;&gt;JavaOne 2007&lt;/a&gt; session. It&amp;#39;s based in part on the Beyond Blogging presentation that I presented to a tiny audience at the local Tri-XML conference last year. Tim Bray didn&amp;#39;t attend my talk, but he read the slides and &lt;a href=&quot;http://www.tbray.org/ongoing/When/200x/2006/07/29/Johnson-on-Feeds&quot;&gt;called&lt;/a&gt; them &amp;quot;the single best introduction and overview I&amp;#39;ve ever seen
about feeds and syndication and RSS and Atom and all that stuff.&amp;quot; I shouldn&amp;#39;t brag. Had he attended the talk he might have had an entirely different opinion, who knows. Anyhow, the presentation has been updated, stream-lined and large portions rewritten to cover &lt;a href=&quot;http://rome.dev.java.net&quot;&gt;ROME&lt;/a&gt; and ROME&amp;#39;s new Propono sub-project. Here&amp;#39;s the outline:&lt;br&gt;&lt;br&gt;&lt;b&gt;The web is bloggy&lt;br&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Blogging, XML and web services&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Feeds on the web today&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Feeds as an integration technology&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WS Death Star&lt;br&gt;&lt;b&gt;Understanding RSS and Atom&lt;br&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; The birth of the RSS&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; The RDF fork: RSS 1.0&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Elements of RSS 1.0 (abridged)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Feed Extension Modules&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; The simple fork: RSS 0.92 â&#128;&#147; RSS 2.0&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Elements of RSS 2.0 (abridged)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RSS limitations&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Atom Publishing Format&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Elements of Atom (abridged)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RSS and Atom feed family tree&lt;br&gt;&lt;b&gt;Consuming feeds with ROME&lt;br&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; It&amp;#39;s just XML&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROME RSS/Atom feed utilities&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; How does ROME work?&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROME SyndFeed model&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; How to fetch feeds&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fetching a feed with ROME Fetcher&lt;br&gt;&lt;b&gt;Producing feeds with ROME&lt;/b&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Serving feeds: generate XML&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Use your favorite XML tools or...&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Generating Atom with ROME&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Serving feeds&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cache cache cache&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Serving Atom with ROME&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Feed auto-discovery&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Serving valid feeds&lt;br&gt;&lt;b&gt;Publishing with ROME Propono&lt;/b&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Atom Publishing Protocol (APP)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; What does APP do?&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; How does it do all that? The REST way&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; APP Service Document&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; An Atom collection &amp;lt;feed&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Getting an APP collection - with paging&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROME Propono&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROME Propono Atom Client API&lt;br&gt;RSS/Atom trends&lt;br&gt;For More Information&lt;br&gt;Summary&lt;br&gt;Q &amp;amp; A&amp;nbsp;&lt;/p&gt;&lt;p&gt;And for the folks who&amp;#39;ve written to me about Propono, the new ROME subproject devoted to publishing via Atom protocol (and the MetaWeblog API): I hope to commit the code to ROME and starting blogging about it this week.&lt;/p&gt;</description>  </item>
</channel>
</rss>