Hello Tim,

thanks a lot for your feed-back. We fully agree with you and have updated the page and source code.

best regards,
Thierry Boileau

This is a nice bit of documentation by example -- I'm glad you added it.

FirstResourceApplication is not thread-safe, however. I know you want the example to be simple, but it's important to give readers code that exemplifies good practice. This is different from using an in-memory Map instead of a real database; even a toy application should not be broken.

Simplest fix is to use ConcurrentHashMap instead of HashMap for the items field. (And make that field final.)

The Resource implementation does *not* need to be thread-safe.

A minor point: How about factoring the calls to
((FirstResourceApplication) getApplication()).getItems()
into a common method of an abstract class extending Resource that both ItemsResource and ItemResource could extend? Then the "toy"-ness of the persistence layer wouldn't be so apparent, and dependency on FirstResourceApplicaiton would be confiined to one method.

--tim

On Tue, Apr 8, 2008 at 9:00 AM, Thierry Boileau <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    Hello all,

    We've added a new "First resource" document in the Restlet web site.
    You can get it at the following URL:
    http://www.restlet.org/documentation/1.1/firstResource (or
    http://www.restlet.org/documentation/1.0/firstResource, for
    Restlet 1.0).

    It simply describes how to create 2 basic resources illustrating how
    to handle GET, POST, PUT, DELETE methods.
    Your comments and questions are of course welcomed.

    best regards,
    Thierry Boileau



Reply via email to