Subscribe: Blogging Roller
Added By: Feedage Forager Feedage Grade B rated
Language: English
apache  api  atom  java  javaone  maven  netbeans  new  project  propono  release  roller  rome  server  sun  support  web 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: Blogging Roller

Blogging Roller

Dave Johnson on open web technologies, social software and Java

Last Build Date: Wed, 14 Mar 2018 21:38:52 +0000

Copyright: Copyright 2018

Tim Bray on HttpURLConnection

Mon, 23 Jan 2012 08:26:37 +0000

Good information on a bad API. The comments are good too:

HttpURLConnection's Dark Secrets: If you’re programming in the Java language and want to talk to a Web server, there are several libraries you can choose from. HttpURLConnection is one popular choice, and for Android programming, the engineering team has now officially suggested that you use it where possible.

Looks like I'll be waiting for Netbeans 7.1.1

Tue, 10 Jan 2012 07:20:58 +0000

jVi Home Page: NetBeans 7.1 Bug 205835 can lose edits; a variety of jVi commands run into this. jVi-1.4.5 disables itself if it detects module versions with the bug, AFAICT. The bug is scheduled to be fixed in NB-7.1.1; sometime around January/February.

Seriously, how can you ship without vi?

Maven 3.0: 50% to 400% speed improvement?

Wed, 26 May 2010 08:25:10 +0000

A drop-in replacement with 50% to 400% speed improvement? That sounds too good to be true.

Matt Raible: The main improvement in Maven 3 is speed. It's been performance tuned to be 50% to 400% faster. Benchmarks (guaranteed by integration tests) include better: Disk I/O, Network I/O, CPU and Memory. Another new feature is extensibility so Maven is a better library rather than just a command-line tool. Now there's a library and APIs that you can use to do the things that Maven does. Plexus has been replaced with Guice and it's now much easier to embed Maven (Polyglot Maven and Maven Shell are examples of this).

Apparently it is not entirely true, at least not yet (Maven 3.0 is still in beta). I tried switching to Maven 3 for the Roller 5 build and hit several build errors related to class-loading and JPA byte-code enhancement.

Maven support in IDEs

Tue, 23 Mar 2010 10:11:14 +0000


I've been switching around between the Eclipse, Netbeans and IntelliJ IDEs at home and at work. I've found that fiddling around with multiple IDE specific project configurations and launchers and class-paths is no fun at all. That's one of the reasons I got interested in Maven. Yes, Maven is a build-system but it's also a sort of IDE portability solution. Maven projects can be loaded right into all the major Java IDEs as you can see in the screenshots below. IDEs can find your sources, resources, dependencies and via the Maven Jetty plugin even run your Java webapps from the IDE -- things that are not possible if you're using a custom Ant build-script as we were doing before with Roller.

Here some screenshots that show the various Maven IDE plugins and their dependency graph feature.

Roller / Maven Eclipse 3.5 / M2Eclipse

Here's Roller loaded into Eclipse via the Maven M2 Eclipse plugin.


By the way, if you want detailed instructions for getting Roller 5 up and running in Eclipse with the Eclipse Web tooling, check-out Harald Wellman's helpful blog on the topic: Setting up Eclipse for Roller.

Roller / Maven in Netbeans 6.8

Here's Roller loaded into Netbeans as a Maven project.


Roller / Maven in IDEA IntelliJ 9.0

And here's Roller loaded into IDEA IntelliJ as a Maven project.


I'm not sure which I prefer yet.

Atom news: Apache Abdera graduates

Fri, 21 Nov 2008 15:54:48 +0000


Congratulations to the Apache Abdera team, who've just graduated to full Apache top level project status. The don't have the new site at up yet and they're still not quite at 1.0 yet, but this is a major milestone. They've got the best Atom format and protocol toolkit around, in my opinion.

via Garett and James.

RESTful JSF in the works?

Fri, 8 Aug 2008 15:52:58 +0000

JSF spec lead Ed Burns just pointed out that some of my Sun-internal comments about JSF have made it outside the firewall and into an issue on the JSF specification project:

On Wed, 19 Mar 2008, David M Johnson said:

I think the goal should be to make JSF applications RESTful by default, with proper use of GET and POST, i.e. only use POST when application data is changing, not for component state. Another goal should be clean, book-markable URLs that only carry path-info and parameters needed by the application logic.

That's easy and the default situation with Rails, Grails, Struts, etc. How hard would it be to redesign JSF along those lines? Would it require EJB2 -> EJB3 level changes to JSF?

I suspect work on JSF 2.0 is too far along for this kind of change now, but it's nice to hear that the idea of a truly RESTful JSF is at least under consideration.

Struts 2 in Action

Wed, 7 May 2008 12:19:49 +0000


Struts 2 is my favorite Java web framework these days; it's REST-friendly, simple, easy to use, very flexible and the only thing it has with its creaky old Struts 1.x parent is the fact that it's an action framework rather than a component framework like JSF. As most of my readers probably already know, Struts 2 is based on WebWork/XWork the framework that powers JIRA and Confluence, two of the coolest Java webapps around.

Apparently, I'm not alone in this thinking -- I keep on running into folks at JavaOne who feel the same way. But unfortunately, Struts 2 docs are lacking, so I was very happy to see two new books on Struts 2 at the JavaOne bookstore. There's Struts 2 in Action, a rewrite of the classic Manning book, and Practical Apache Struts 2 Web 2.0 Projects from Apress.

I picked up a copy of Struts 2 in Action on Monday and it looks great so far, but I've only skimmed it. I'll let you know what I think once I dig-in on the flight home.

If you're at JavaOne, check out TS-5739 - Hands-on Struts2 by Ian Roughley (author of the Apress book) today at 10:50 AM in Esplanade 307/310.

Social Software at JavaOne 2008

Tue, 29 Apr 2008 15:00:08 +0000

There are quite a number of Social Software related talks coming up at JavaOne and CommunityOne this year. You can learn about everything from building Social Networks with the Liferay portal and federated relationships with OpenSSO to creating 3D virtual works and implementing OpenSocial with Java. And, I'll finally be able to talk about what I've been working on for the past couple of months -- more about that later. Here are the 11 Social Software related talks that I've found so far at both JavaOne and CommunityOne. Did I leave any out? CommunityOne - Monday S297141 - Building a Social Network with Liferay Portal Brian Chan, Liferay, Inc. Monday May 05 12:25 - 13:20 / Moscone North - Hall E 135 S295742 - Turn Your Web Site into an OpenSocial Container Dave Johnson and Vijay Ramachandran, Sun Microsystems, Inc. Monday May 05 14:35 - 15:30 / Moscone North - Hall E 135 S297300 - OpenSSO: Federated Relationships with Social Networking and Web 2.0 Pat Patterson, Daniel Raskin and Nick Wooler, Sun Microsystems, Inc. Monday May 05 16:00 - 16:55 - Moscone North - Hall E 135 JavaOne - Tuesday TS-6125 - Project Wonderland: A Toolkit for Building 3-D Virtual Worlds Paul Byrne and Jonathan Kaplan, Sun Microsystems, Inc. Tuesday 05/06/2008 3:20 PM -4:20 PM / North Mtg-121/122/124/125 JavaOne - Wednesday TS-6574 - How to Implement Your Own OpenSocial Container with Java Chris Schalk, Google Wednesday 05/07/2008 1:30 PM -2:30 PM JavaOne - Thursday BOF-6362 - LinkedIn: Prof. Social Network Built with Java and Agile Practices Nick Dellamaggiore and Eishay Smith, LinkedIn Thursday 05/08/2008 6:30 PM -7:20 PM / Esplanade 301 BOF-5857 - Turn Your Web Site into an OpenSocial Container Dave Johnson and Jamey Wood, Sun Microsystems, Inc. Thursday 05/08/2008 6:30 PM BOF-6575 - Building OpenSocial JavaServer Faces Components Ed Burns, Sun Microsystems, Inc.; Chris Schalk, Google Thursday 05/08/2008 7:30 PM -8:20 PM BOF-5911 - Beatnik: Building an Open Social Network Browser Tim Boudreau and Henry Story, Sun Microsystems, Inc. Thursday 05/08/2008 7:30 PM -8:20 PM BOF-6435 - Creating Facebook and OpenSocial Widgets with Java Florent Gerbod and Kevin Leong, Mo'Blast Inc. Thursday 05/08/2008 8:30 PM -9:20 PM JavaOne - Friday TS-6537 - Applications for the Masses by the Masses Girish Balachandran and Todd Fast, Sun Microsystems, Inc. Friday 05/09/2008 10:50 AM -11:50 AM [...]

Social Software for Glassfish screencast

Thu, 21 Feb 2008 16:13:44 +0000

(image) (image) (image)

I mentioned the Social Software for Glassfish (SSG) EA2 release before the winter break, but I never got around to posting any details. Since then some documentation has appeared, Manveen Kaur blogged it, The Aquarium too and now screen-cast master Arun Gupta has created an excellent Social Software for Glassfish screencast that walks you through the features in this very early access release. Now I don't have to say nearly as much.

Abdera AtomPub server refactoring

Mon, 28 Jan 2008 09:05:45 +0000

I've got to carve out some time ASAP to take a close look at this. The code is in Abdera SVN and there's 20-minute implementation guide (PDF) too:

James Snell: Dan Diephouse and I have been spending the last week refactoring the Abdera server framework with the goal of making is less complicated, easier, and generally better.

Yahoo Weather RSS module for ROME

Wed, 23 Jan 2008 15:40:22 +0000


Apparently, I spoke to soon about ROME being in maintenance mode. There's an all-new Yahoo Weather module for ROME from Robert "kerbernet" Cooper.

ROME vs. Abdera

Tue, 22 Jan 2008 18:18:40 +0000


For Java developers starting out with RSS and Atom, here are some notes to help you figure out the differences between the ROME and Apache Abdera (incubating) projects.

ROME is a set of Java tools for parsing, fetching and generating all forms of RSS and Atom feeds. The core ROME library is relatively small and depends only on the somewhat creaky old JDOM XML parser. Available separately are modules to support various feed extensions such as OpenSearch, iTunes, GeoRSS, etc. ROME was originally developed and open sourced by Sun Portal dev team members in 2004.

ROME Propono is a subproject of ROME that supports publishing/editing entries and files to blog servers and AtomPub servers. Propono is made up of three parts: 1) a Blog Client library can publish via either the old lagacy MetaWeblog API or the shiny new AtomPub protocol, 2) an AtomPub client that publishes only via AtomPub and 3) a framework for creating AtomPub servers. Propono was developed by Ramesh Mandava and Dave Johnson, based on code from RSS and Atom in Action and open sourced as part of the Sun Web Developer Pack in 2007.

Abdera is a set of Java tools for working with Atom feeds and AtomPub protocol. This includes a parser, writers, an AtomPub client and a framework for creating AtomPub servers. Abdera's Atom feed parser uses STAX, so it uses less memory and is faster than ROME. Abdera's Atom feed support is more comprehensive than ROME's and it supports signatures, encryption, Atom to JSON, extensions for Threading, Paging, GeoRSS, OpenSearch, GoogleLogin, etc. etc. Abdera was developed by IBM and contribued to Apache in 2006.

Now let's compare frameworks. The pros and cons of ROME are:

  • Pro: complete RSS support, all of the dozen various flavors
  • Pro: it's generally simple and small, depending only one jar (JDOM)
  • Pro: easy to understand and use the AtomPub server framework
  • Pro: MetaWeblog API support
  • Con: Atom feed support not as comprehensive as Abdera
  • Con: parser uses lots of memory, slower, JDOM based
  • Con: community not as active, seems to be in maintenance mode (See also Ohloh stats)

The pros and cons of Abdera are:

  • Pro: comprehensive Atom feed support, lots more Atom extensions
  • Pro: faster more efficient parser
  • Pro: In the Apache Incubator with active and growing community (See also Ohloh stats)
  • Con: lots of dependencies
  • Con: AtomPub server framework poorly documented, overly complex (rewrite coming soon)
  • Con: no RSS support (there is something in Abdera contrib, but it's incomplete).

There you have it. ROME and Abdera folks: think that's a fair comparison? Are you a ROME or Abdera user? How would you like to see these frameworks move forward?

Holiday project: JMaki for Roller

Wed, 2 Jan 2008 13:12:54 +0000

(image) Over the holidays I avoided doing anything directly related to my current set of work tasks. Sun went quiet, which helped, and I ignored the messages that piled-up in the Roller user and dev lists. It was so quiet that I had time for a fun little project: a JMaki plugin for Roller.

JMaki makes it easy to use JavaScript widgets (Dojo, Google, YUI, etc.) from PHP, JSP, JSF and now Roller. To use a widget, all you have to do is call a method or include a tag and JMaki takes care of including the right JavaScript files and generating the right HTML for you. That's not all JMaki does, there's also a pub/sub facility to make it easy to wire widgets together via events, there's a proxy for fetching remote resources common table and tree data models. The theme is cool widgets with ease-of-development and that's what I'd like to see in Roller. You can read more about the JMaki value proposition on the Why Use JMaki page.

Here's an example. Below is a Roller page template that uses two JavaScript widgest, the Dojo Clock and the YUI Data Table. All it takes is a single line of template code to include each widget, and one widget is dynamic i.e. the table is populated via an RSS feed.

    JMaki test page


JMaki test: dojo.clock


JMaki test: yahoo.dataTable

$jmaki.addWidget("yahoo.dataTable", "/roller/xhp?id=rss","","")

And here's what that page looks like when displayed by Roller:


I'll write more about the plugin once I install it on this site. If you want some details about how the plugin was developed, you can read the email that I sent to the JMaki dev list: JMaki for Roller issues and suggestions. It links to the Java source code for the plugin.

PHP support in Netbeans

Wed, 28 Nov 2007 16:55:37 +0000

Hadn't heard about this one until today, but Netbeans 6.1 will have plugin support for creating, editing, deploying to Apache HTTPD, running and even debugging PHP projects. Check out the details and screenshots on the Phantom Reference blog.

Here's a sceenshot from the Netbeans Wiki page on PHP:


Groovy support back in Netbeans

Wed, 28 Nov 2007 09:05:28 +0000

After going missing in NB 5.5, Groovy support is back in Netbeans. Basic Groovy support with syntax coloring and support for running scripts from the IDE is available in plugin form (download page) for Netbeans 6.0 (starting with RC2), read about it on Geertjan's blog.

Here's what's coming after Netbeans 6.0, Groovy project support: (image)

After Netbeans 6.0, the story gets better. Geertjan writes that a brand new Groovy plugin will be available in the post-6.0 builds that adds support for three types of Groovy projects: applications, class libraries and Grails webapps.

Blogapps 2.1 released

Tue, 2 Oct 2007 21:49:40 +0000

(image) The next releases that I'd like to announce are the Blogapps 2.1 Examples and the Blogapps 2.1 Server.

If you'd like to learn more about the Blogapps examples and server then read The Blogapps Project article at Here's a quick summary:

The Blogapps project hosts a collection of useful RSS and Atom utilities and examples from RSS and Atom In Action by Dave Johnson. They're designed to be useful even if you haven't read the book and they're available under the Apache License 2.0 so you can use the code in your applications and you can modify and redistribute them as you wish.

What's changed since 2.0? The examples have been updated to include the latest version of ROME Propono, which means that most of them now support the final Atom protcol spec. The server has been updated to include Roller 4.0 RC5, which also includes Atom protocol support and JSPWiki 2.4. And of course, various bugs have been fixed. Here are the release files, installation instructions and release notes.

This blog entry was posted via Atom protocol and the MatisseBlogger blog-client, which you can see in the screen-shot below (which was also posted via Atom.


What's next? Not sure at this point, but I will do another Blogapps release once ROME 1.0 is released.

OpenJPA 1.0 released

Thu, 30 Aug 2007 08:24:28 +0000

Congratulations to the Apache OpenJPA team on making their first official release since graduation. I wish I'd paid closer attention to the OpenJPA mailing lists and tested the release candidates. Oh well. I'll download and test the final 1.0 release and maybe we can get it into Apache Roller 4.0 RC2.

re: Java needs an overhaul

Tue, 28 Aug 2007 16:57:23 +0000

Tim Bray: Java still remains by far the largest development ecosystem, and the selection and quality of libraries put pretty well any other language’s to shame, and it’s really fucking fast, and has superb tooling, and we know how to run it securely, and it’s Open-Source. So, if you want to move the state of the art along, a smart idea would be to work with, not against, Java.

Finally, something I can agree with on the topic.

APP interop event today and congrats to Atomic Joe Gregorio

Mon, 6 Aug 2007 11:52:46 +0000

I wasn't paying attention and this one snuck-up on me. Today at noon Pacific Time there will be an online Atom Publishing Protocol interop event. The location is IRC on the Freenode network in the #atom channel: irc://

I'm really glad I didn't miss this announcement because I spent much of the last two weekends updating the ROME Propono and Apache Roller 4.0 implementations to work with the final version of APP (draft #17). I've got both implementations online now and ready for interop.

And in kinda sorta related news, one of the founders of the Atom effort Joe Gregorio is leaving IBM and heading over to Google. Congratulations Joe! I hope this doesn't mean you'll be leaving the Triangle behind.

Finally... "go to file" in Netbeans

Wed, 1 Aug 2007 17:02:18 +0000

I've been waiting years for this one. As Roumen Strobl points out, the Netbeans 6.0 nightly builds finally include a "go to file" feature, much like CTRL-SHIFT-R in Eclipse (but in Netbeans 6.0 it's CTRL-SHIFT-O).

I'm diggin' 6.0 and it's starting to look pretty stable in advance of beta1, which is coming out this month. Grab a nightly build and check it out. According to Tor on the Java Posse the nightly builds are likely to be more stable than the most recent M10 milestone release.

Java already built-into iPhone h/w

Mon, 9 Jul 2007 10:45:05 +0000

So says ZDNet's Ed Burnette.
Ed Burnette: Shortly after the iPhone went on sale, hardware enthusiasts started tearing into them to see what made them tick. They found that the iPhone is using an ARM1176JZF-based processor, probably the Samsung S3C6400 that operates at 667MHz. This chip sports an embedded Java acceleration engine called Jazelle.
And in closing Ed writes:
Now, if Apple can just get over its anachronistic “Java is heavyweight” beliefs, then small, efficient, hardware-accelerated Java games and multimedia for your iPhone could be just a software upgrade away.
Maybe the iPhone won't suck for developers after all.

Glassfish at UNC-Chapel Hill

Tue, 3 Jul 2007 21:41:01 +0000


Via the Aquarium, there's a nice Java EE and Glassfish adoption story over in Chillboro:

Adam Constabaris: A fundamental question for us in building this application was whether to use Tomcat and "soup it up" by using Spring to add services Tomcat doesn't provide itself, or whether to use a full Java EE container. We could have made it work with the servlet container approach, since our application isn't heavily "enterprisey" and we were initially reluctant to pay the complexity price of EJBs. After looking at the Java EE 5 specification, though, we saw a lot of ways we could simplify and standardize things, such as using JSF 1.2 and coding to the Java Persistence API rather than using Hiberrnate APIs directly.

Hey! I know that guy. Hi Adam.

Is there a trend towards full app servers and away from plain old Tomcat? Is it because of strong open source Java EE offerings from Sun, JBoss and Apache? I don't know, but I sure hope so.


Mon, 2 Jul 2007 09:28:53 +0000

IBM's project Zero has de-cloaked.
Project Zero introduces a simple environment for creating, assembling and executing applications based on popular Web technologies. The Project Zero environment includes a scripting runtime for Groovy and PHP with application programming interfaces optimized for producing REST-style services, integration mash-ups and rich Web interfaces.
Smells a lot like Phobos (see also Phobos Meets Atom, REST), but Phobos is focusing on server-side JavaScript first. Oh, and Phobos is open source. Project Zero is not.
"This community is an experiment in a new way to build commercial software, an approach we are currently calling Community-Driven Commercial Development. Community-Driven means that we want feedback, insight, suggestions, criticism, and dialogue with you, the users of Project Zero. This interaction will yield a better solution that is more targeted at the problems you have and a technology that truly delivers on its objectives. Commercial means that this is not an open source project."
Community-driven? Sounds like the community is a back-seat driver with freedom to complain but no access to the steering wheel, gas pedal or breaks.

Apache OpenJPA graduates

Tue, 22 May 2007 08:50:28 +0000

Congrats to the OpenJPA team.

Patrick Linksey: Last week, OpenJPA graduated from the Apache incubator, meaning that it's now a fully-fledged Apache project. We're graduating to a top-level project, so once the infrastructure administrivia gets worked out, the new URL will be

I'd like to thank Craig Russell for pushing the project through the last mile of graduation details, and our incubation mentors (Brian McAllister, Eddie O'Neil, and Geir Magnusson) for all their help transitioning into the Apache world.

I'm pushing to replace Hibernate with JPA in Roller and OpenJPA seems the most likely candidate, so I'm glad to hear the community is thriving.

Basic Groovy, for Netbeans 6.0

Mon, 21 May 2007 16:24:23 +0000

Speaking of open source projects that need help, there's Coyote, which promised to bring scripting support to Netbeans and did so for Netbeans 5.0. Since then, the project has been pretty stagnant. JRuby's getting all the attention these days.

Geertjan is doing his best to jump-start Groovy support in Netbeans, but it's not really his job. He's gone beyond the call of duty and it looks like he's got something pretty functional going, which is very nice. I've been doing some Groovy scripting lately, so I'll try it out. It would be cool if the Groovy project itself had time to help out, or even take over, but they're probably pretty busy too.

Sun open sources Slynkr, Digg-like social bookmarking app

Mon, 21 May 2007 08:05:41 +0000

Sun just open sourced an interesting Java webapp called Slynkr that supports a Digg-like form of social bookmarking and tagging. You can get the source and docs at

Slynkr was developed inside Sun by Jamey Wood and others. The small community that formed around it found it useful and fun and wanted to share it. Slynkr was first deployed externally (and experimentally) at and more recently it was put into production at

Slynkr has a nice feature set and UI, but under the covers it needs some work. It's only been tested with the Sun app server and Oracle, so it's probably got some "portability" issues. For better or worse, it's got a simple Servlet/JSP and JDBC architecture -- no frameworks or persistence layer yet. Jamey is interested in improving the architecture, making it work on multiple servers and databases and growing a community around the project. So if you're interested, grab the source, join the mailing-list and get in on the ground-floor of an cool new open source project.

Update: check out Jamey's post on Slynkr for some more background.

TS-6029 - Beyond Blogging: Feeds in Action

Thu, 10 May 2007 16:27:29 +0000

As usual, I'm enjoying JavaOne and meeting lots of new people and putting faces to names. I've also been practicing my talk daily so I can give you my best performance, so eat lunch a little early or a little late and come see how it goes. Here are the details:

APP and OpenID at JavaOne

Mon, 7 May 2007 14:43:56 +0000

Trey Drake: How do you demo a directory server? Build cool apps around it. To that end, we've built an Atom/APP server, a lightweight OpenID server, a blogging and "twitter" like app - all powered by OpenDS. Drop by our booth (Glassfish alley at CommunityONE and .org section of the pavilion during JavaONE). Ludo and I will introduce OpenDS and show off the demos in two talks; today at CommunityONE at 5PM and Wednesday at 1:30 in the CommunityCorner.

Very cool. I'm not going to be the only one talking about Atom protocol at JavaOne. I'll have to stop by the CommunityCorner, that sounds too good to miss.

Propono 0.5 released

Mon, 23 Apr 2007 15:32:10 +0000

ROME Propono 0.5 is a minor bug fix release of Propono. You can get the release files and updated Javadocs from the Propono 0.5 release page.

APP interop follow-up

Sun, 22 Apr 2007 19:59:19 +0000

Following up on the APP interop event last week, here are the ROME Propono APP client issues we found: 

And here are the Roller APP server issues:

I plan on fixing the Roller issues for this summer's Roller 4.0 release. I won't have time to fix the Propono issues for the upcoming Propono 0.5 release (due this week), so they'll be in 0.6 sometime after JavaOne.

ROME Propono 0.4 released

Tue, 10 Apr 2007 15:20:26 +0000

(image) I'm happy to announce the first release of the ROME subproject Propono. Propono is a ROME-based Java class library that supports publishing protocols, specifically the Atom Publishing Protocol and the legacy MetaWeblog API. Propono includes an Atom client library, an Atom server framework and a Blog client that supports both Atom protocol and the MetaWeblog API.

Here's the project page

Here's the Propono 0.4 release page:

And here's a link to the API docs, which include details, diagrams and code examples:

I'll be testing Propono this week and next (at the Google-hosted APP interop meeting) so now is a great time to provide feedback and bug reports. I plan on releasing Propono 0.5 in the *very* near future.

@JavaOne: Beyond Blogging: Feeds in Action

Wed, 4 Apr 2007 17:32:34 +0000

As promised here's some more info on my JavaOne 2007 session. It'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't attend my talk, but he read the slides and called them "the single best introduction and overview I've ever seen about feeds and syndication and RSS and Atom and all that stuff." I shouldn'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 ROME and ROME's new Propono sub-project. Here's the outline:

The web is bloggy
    Blogging, XML and web services
    Feeds on the web today
    Feeds as an integration technology
    WS Death Star
Understanding RSS and Atom
    The birth of the RSS
    The RDF fork: RSS 1.0
    Elements of RSS 1.0 (abridged)
    Feed Extension Modules
    The simple fork: RSS 0.92 – RSS 2.0
    Elements of RSS 2.0 (abridged)
    RSS limitations
    Atom Publishing Format
    Elements of Atom (abridged)
    RSS and Atom feed family tree
Consuming feeds with ROME
    It's just XML
    ROME RSS/Atom feed utilities
    How does ROME work?
    ROME SyndFeed model
    How to fetch feeds
    Fetching a feed with ROME Fetcher
Producing feeds with ROME
    Serving feeds: generate XML
    Use your favorite XML tools or...
    Generating Atom with ROME
    Serving feeds
    Cache cache cache
    Serving Atom with ROME
    Feed auto-discovery
    Serving valid feeds
Publishing with ROME Propono
    Atom Publishing Protocol (APP)
    What does APP do?
    How does it do all that? The REST way
    APP Service Document
    An Atom collection
    Getting an APP collection - with paging
    ROME Propono
    ROME Propono Atom Client API
RSS/Atom trends
For More Information
Q & A 

And for the folks who'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.

Geertjan's blog

Tue, 3 Apr 2007 23:01:08 +0000

I've really been enjoying Geertjan's blog recently. Lots of interesting details, screenshots and his passion for his work really comes through. His posts on the Netbeans Schliemann generic languages framework and today's Capturing Matisse make me want to drop everything and start hacking Netbeans. And I'm especially happy to see that somebody is interesting in Breathing Life Back into a Dead Coyote (part 1 and part 2), which is currently the main vehicle for Groovy language support in Netbeans -- I'd hate to see Groovy dropped in the mad rush to Ruby.

Newsgator launches Java ME powered feed reader

Thu, 15 Mar 2007 12:06:36 +0000

Newsgator, makers of FeedDemon and NetNewsWire, have launched a Java ME powered RSS/Atom feed reader. Here are some details from the press release

NewsGator Go! for BlackBerry and NewsGator Go! for Java were developed in a technology partnership with FreeRange Communications, the leading developers of mobile publishing and mobile RSS solutions, and is available for BlackBerry, Sony Ericsson, Nokia, and most other MID-P 2.0 mobile phones, including Samsung, Sanyo and LG. NewsGator Go! is available for $29.95 or $14.95 if bought with any of NewsGator’s desktop readers, including FeedDemon, NetNewsWire and Inbox.

Via Randy Morin.

Sun Web Developer Pack R1 with RSS and Atom goodies

Mon, 12 Mar 2007 21:20:29 +0000

The Sun Web Developer Pack (SWDP) finally uncloaked today, so I can talk a little more openly about what I and my Java EE co-workers have been working on. You can get the full scoop at the SWDP site, but basically SWDP is a bundle of technologies to help developers build "Web 2.0" or next-generation web applications on the Java platform. Ajax, scripting languages, REST and of course RSS/Atom are all part of that. The RSS/Atom bits are ROME 0.9 (Beta), Blogapps 2.0 (Early Access) and a ROME-based Atom Server kit based on code from Roller.  There are also example Atom server implementations in the REST API and Phobos components of the pack.

I'm pretty excited that we're putting some resources behind ROME and that both ROME and Blogapps are part of SWDP R1, but I'm even more excited about the next release. In R2 we'll drop the Atom Server Kit and Blogapps BlogClient and we'll replace them with ROME Propono a brand new Atom protocol client and server library that we're getting ready to contribute to the ROME project.

I haven't had a whole lot of time to experiment with the various components in the pack, but I have played with Phobos and I think it's pretty compelling. Phobos is a "lightweight, scripting-friendly, web application environment." It's not just for creating server-side JavaScript applications, but that's the angle the I find interesting. So many developers are creating JavaScript/Ajax applications these days that working in JavaScript on both client and server-sides makes sense -- especially when you can debug into JavaScript code in your IDE as you can with the Netbeans Phobos module. Also note that the jMaki Ajax components work with JSP, PHP and Phobos -- jMaki and Phobos look like a winning combination.


Thu, 8 Mar 2007 14:33:59 +0000

That's three JPAs. I've been fighting to get a new Roller back-end running, one that uses the Java Persistence API (JPA) rather than the native Hibernate API that we use now.

Craig Russell and Mitesh Meswani wrote the new JPA back-end and tested it against Toplink/JPA (JPA #1) and the Derby database. I've been refactoring it, updating it for Roller 4.0 and testing it against various other databases and JPA implementations with mixed results.

I tried to run it against MySQL, ran into a bunch of problems and fixed those. Allen switched out Toplink/JPA for Hibernate/JPA (JPA #2), ran into problems and fixed those. I switched out Toplink for Apache OpenJPA-incubating (JPA #3), ran into problems and fixed those. So now we have a back-end implementation that runs against OpenJPA, but requires two small code changes to work against Toplink -- not exactly an ideal situation.

I'm a JPA newbie for sure and still trying to figure this stuff out, but it does seem that switching JPA implementations is not as easy as it ought to be.

In other JPA news...

I didn't realize that the open source version of Toplink that Oracle contributed to Glassfish, Toplink Essentials, is the pee-wee version of the full and still closed source Toplink product. That's why I was somewhat surprised to hear that Oracle is open sourcing and donating the full version of Toplink to the Eclipse foundation.

Two observations about that news. First, this move appears to be a fork that will result in a CDDL licensed version of Toplink Essentials in Glassfish and an EPL version in Eclipse -- I hope I'm wrong about that. And second: apparently IBM will be soon be supporting two versions of JPA: OpenJPA via Geronimo and Toplink/JPA via Eclipse.

Hudson: an amazingly easy-to-use build server

Mon, 5 Mar 2007 08:08:24 +0000

I've never used a build or "continuous integration" server before so I've got nothing to compare Hudson to, but I can say this: it's amazingly easy to install and configure. Just drop the hudson.war file in Tomcat's webapps directory or deploy to your favorite app server and start setting up build jobs.

Hudson can pull from CVS and Subversion. It can run Maven builds, Ant builds and shell scripts. It can publish  javadocs, build artifacts, test reports and RSS feeds. The UI is simple but full of options and with plenty of built-in help. Here are the projects I'm monitoring with Hudson:

My Hudson is setup on old (Pentium 450mhz) Linux box and I've got it setup to poll my projects every 30 minutes and do a full rebuild and test on any change. I'm subscribed via RSS, so I'll quickly learn of any failure. Very handy.

Read more about Hudson at the project's site and the Aquarium has a nice set of Hudson links.

JavaOne here I come!

Fri, 2 Mar 2007 21:28:09 +0000


I'm very happy to report that my talk was accepted for JavaOne 2007. I'll be giving a thoroughly revamped and updated version of my Beyond Blogging talk (aka Johnson on Feeds), which adds in-depth coverage of ROME and ROME Propono. I'm excited about going to JavaOne again, but I'm also feeling a bit frazzled. I'm swamped with work right now and I've got a stack of deadlines clustered around the March 20 due date for the slides.

I helped out with the session selection for the web-tier track this year so I can say with some confidence that at least one track is going to rock -- we've got a wonderful set of talks lined up, so don't miss it. The full session schedule isn't online yet, but registration is open.

Netbeans 6.0 pre-beta first impressions

Wed, 28 Feb 2007 10:21:33 +0000

When I saw that Tim Bray upgraded to a Netbeans 6 daily-build and it seemed to work OK, I just had to give it a try myself and I'm glad I did. I've been using it for a solid day now and I can tell that it's going to be a vast improvement over 5.5. It's fast. It starts up way faster than 5.5, seems faster overall and shutdown is almost instantaneous. Bravo! What else?

Tim was impressed by the hip new JRuby support, and I'll give that a try, but right now I'm digging the more routine things, things that I've been missing from Eclipse like multi-file search & replace, local history and a smart editor. The only thing I miss from Eclipse now is this: Netbeans has a nice Ctrl-Shft-O to Go To Type feature and I use it all the time; why can't we have a nice slick Ctrl-Shft-R Go To Resource like Eclipse does?

Anyhow... NB6 is looking good already, so if you're using 5.5, you might want to take the latest milestone Netbeans 6.0 M7 or one of the dailies for a spin.


Thu, 15 Feb 2007 10:57:12 +0000

I've been updating my post with links to blogs about JSR 311: Java (TM) API for RESTful Web Services. I went from a couple to nine links today and I'll probably keep on linking, but I'm about to go quiet for couple of days. It's wiki mountain weekend time again.


Wed, 14 Feb 2007 10:24:20 +0000

That's big news. A standard Java API is coming for building REST based web services. If you're an expert in REST, you can participate in it's development by signing up for the expert group. Apache, BEA, Google and Jerome Louvel (the RESTlet guy) are on-board. Here's the intro from the JSR: JSR 311: Java (TM) API for RESTful Web Services: This API will enable developers to rapidly build Web applications in Java that are characteristic of the best designed parts of the Web. This JSR will develop an API for providing REST(Representational State Transfer - See reference to Roy Fielding's dissertation in section 3.1) support in the Java Platform. Lightweight, RESTful approaches are emerging as a popular alternative to SOAP-based technologies for deployment of services on the internet. Currently, building RESTful Web services using the Java Platform is significantly more complex than building SOAP-based services and requires using low-level APIs like Servlets or the dynamic JAX-WS APIs. Correct implementation requires a high level of HTTP knowledge on the developer's part. This JSR will aim to provide a high level easy-to use API for developers to write RESTful web services independent of the underlying technology and will allow these services to run on top of the Java EE or the Java SE platforms. The expert group will investigate whether a subset of the API can be made used with Java ME. The goal of this JSR is to provide an easy to use, declarative style of programming using annotations for developers to write REST ful Web Services and also enable low level access in cases where needed by the application. RESTful Web Services is a relatively new area in the industry and there are still a lot of unknowns in this space. For example, a key aspect of RESTful Web Services is for the service to be stateless. However, this often requires the developer to produce boiler-plate state restoration code that could be avoided with state-aware API help. We expect the expert group to be an active and engaged group of people participating to prioritize and help drive issues to achieve the end goal of a developer friendly API. Here are a couple more links about the new JSR:Elliote Rusty Harold is not exactly positive, saying "this is like asking Karl Rove and Dick Cheney to write the Democratic Party platform" but concludes with a call for participation: "are there any JSR members here who might join the working group and bring some sanity and actual REST experience to the development of the eventual specification?"Jerome Louvel explains the idea of REST annotations and explains that implementations will be possible with JAX-WS, Servlet API or Restlet API.Dan Diephouse says "This is excellent news - I’m glad to see people are thinking more seriously about RESTful services on Java" and "Expert group members may be interested in checking out the previous work I’ve done on Java REST annotations"Brian McAllister: says the [...]

JRuby on the JavaPosse

Thu, 18 Jan 2007 09:36:00 +0000

Interested in the JRuby project? Then you should check out the JavaPosse podcast interview with JRuby developers Charles Nutter and Thomas Enebo. They cover project status, JRuby vs. CRuby, Ruby on Rails on the JVM and their new jobs at Sun.

Open source ghetto at JavaOne?

Fri, 12 Jan 2007 12:57:17 +0000

Geir's got a great idea for JavaOne. Hope it's not too late for 2007.

JavaOne 2007 call for papers closes today

Fri, 15 Dec 2006 08:52:44 +0000

There's still time to get those proposals in. I ended up submitting three proposals for technical sessions related to RSS/Atom and one for a Roller birds-of-a-feather (BOF) session.

Here's the link to submit proposals:

Join the team

Tue, 12 Dec 2006 22:58:04 +0000

If you dig blogs, wikis, feeds, Java and Solaris then you might be interested in the fact that we're hiring. Linda Skrocki's got the scoop on the job opening in Sun's Community Software Engineering team.

JavaOne 2007 call for papers ends Friday

Tue, 12 Dec 2006 22:57:18 +0000

The 2007 JavaOne Conference is May 8th-May 11th and this is the perfect forum to share your technology expertise at Sun's Worldwide Developer Conference.  This year, the conference is being expanded so that while Java is at the core, with a significant emphasis on Java ME, SE and EE, there will be ample opportunity to present your technology or ideas in such areas as open source & community development (which includes Java, OpenSolaris, OpenOffice and others), next generation web or "web 2.0" technologies, web services and platform integration, consumer technologies and how to leverage Java and other technologies for businesses (including start-ups).

So if you have a hot topic, specific tips or tricks that you believe will help developers, then please go to and submit your session abstract.
I've got a trio of proposals just about ready to go. Hopefully, at least one will be accepted and I'll be attending my 4th JavaOne next year and my 3rd one as a speaker.

Java SE 6 too

Mon, 11 Dec 2006 21:59:24 +0000

In the rather unlikely case that you read my blog and don't know it yet, Java SE 6 was released today. The Sun bloggers are blogging it up and Danny Coward has posted a very nice top ten new features list with links to related blog posts and articles and such. Maybe someday I'll be able to upgrade.

ROME 0.9 (beta) is available

Mon, 11 Dec 2006 18:52:49 +0000

A new release of the RSS and Atom Utilities (ROME) project ROME 0.9 (beta) is now available on the project's website. This new release includes fixes to Atom relative URI resolution, easier parsing for RSS feeds that use , better support for mapping of RSS to and from Atom and numerous small fixes. Here are some quick links to the relevant release docs and files. Release pageChange listJavadocsDirect link to downloads: Let's review a couple of the changes that might affect the ways you use ROME, starting with the RSS parsing changes. Easier parsing of RSS feeds that use Now that ROME includes built-in support for , most user will no longer need to download and configure the separate and optional Content Module plugin. That's important because many RSS feeds use as item summary and as item content. It's also important because Atom supports both entry and . So, whether you are parsing RSS or Atom the code to get an RSS item or Atom entry summary and content is the same. To this this, we made a number of small changes: Added a new com.sun.syndication.feed.rss.Content object to the RSS modelAdded code to converters to convert RSS Content to SyndEntry Content and vice-versaAdded code to generate if content is presentHere's a simple example that shows how to parse and print out parts of an RSS feed with entries that have both summary and content (using ROME's SyndFeed model):     String urlstring = "";    InputStream is = new URL(urlstring).openConnection().getInputStream();     SyndFeedInput input = new SyndFeedInput();    SyndFeed feed = (SyndFeed)        new InputStreamReader(is, Charset.forName("UTF-8")));     Iterator entries = feed.getEntries().iterator();    while (entries.hasNext()) {         SyndEntry entry = (SyndEntry);         System.out.println("-------------");        System.out.println("Title: " + entry.getTitle());        System.out.println("Published: " + entry.getPublishedDate());         if (entry.getDescription() != null) {            System.out.println("Description: "       &n[...]

Apache Abdera 0.2.0 (incubating) released

Thu, 7 Dec 2006 11:45:49 +0000

Abdera is an open source Atom parser, generator, client and server tool-kit for Java. James Snell announced a new version of Apache Abdera (incubating) the other day and the feature list is impressive, especially for a "0.2.0" release. Here's an excerpt:

The goal of the Apache Abdera project is to build a functionally-complete, high-performance implementation of the IETF Atom Syndication Format (RFC 4287) and Atom Publishing Protocol (in-progress) specifications. [... incubator blah blah blah ...]
  • A reworked API that improves usability
  • Decoupled extensions from the underlying parser implementation
  • An Atom Publishing Protocol client implementation
  • Updated support for the current Atom Publishing Protocol draft specification
  • Added support for Internationalized Resource Identifiers (IRIs)
  • Improved Thread Safety
  • Fixed a number of Classloader issues that kept Abdera from working properly in application server environments.
  • Improved Javadocs
  • Added test cases and sample code
  • Added experimental Bidirectional Text support
  • Improved implementation of OpenSearch v1.0 and v1.1 extensions
  • Implementation of MediaRSS extensions
  • Implementation of Feed Paging and Archiving extensions
  • GoogleLogin Authentication Support
We might have to steal that IRI support for ROME. Actually, that's something that should be built right into the Java platform. Apparently IRI support was considered for Java SE 6 and something was implemented, but then rolled back.

Visual Web Pack is NOT for you if...

Wed, 6 Dec 2006 18:16:42 +0000

Roumen: Visual tools for web development are a double-edged sword. They have their advantages and disadvantages. Some users love Visual Web Pack for what it provides but some of them go crazy because by using visual tools they lose a bit of control or they don't fit their development environment. So I'd like to discuss this topic, so that you can decide whether Visual Web Pack is for you or it is not.

A very thoughtful and balanced post from Netbeans evangelist Roumen Strobl that examines some of the reasons you might or might not want to use the new Netbeans Visual Web Pack.