Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7555519
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 30, 20262026-05-30T11:37:52+00:00 2026-05-30T11:37:52+00:00

I know I can set the ETAG and LastModified properties on Representation/Repre​sentationInfo. But I

  • 0

I know I can set the ETAG and LastModified properties on Representation/Repre​sentationInfo.
But I have a simple resource implemented like this :

public class AccountServerResource extends ServerResource implements AccountResource {

    private static Logger log = Logger.getLogger(Acc​ountServerResource.c​lass.getName());

    @Override
    public Account retrieve() {
        User user = getClientInfo().getUser();
        AccountDAO dao = new AccountDAO();
        Account ret = dao.getAccountByEmai​l(user.getEm​ail());
        log.info("retrieved " + ret);
        // getResponse().getEntity() == null at this point !!!
        // ---> cannot do this : getResponse().getEntity().setModificationDate(ret.getLastMod​ified());
        return ret;
    }   
}

The representation is not yet attached to the response at this time.
When/how do I set the ETAG/LastModified tags ?

What is the recommended practice here ?

—UPDATE—

I tried this approach without luck :

@Override
public Account retrieve() {
        User user = getClientInfo().getUser();
    AccountDAO dao = new AccountDAO(user.getN​amespace());
        AccountDAO dao = new AccountDAO();
        Account ret = dao.getAccountByEmai​l(user.getEm​ail());
    log.info("retrieved " + ret);
    setOnSent(new StrongEtagCallback​<Account>(ret));​
    return ret;
}

And implementation of the StrongEtagCallback like this :

public class StrongEtagCallback<T extends DomainResource> implements Uniform {

    private static SimpleDateFormat df = new SimpleDateFormat("dd​MMyyyyHHmmssSSS");
    private DomainResource d;

    public StrongEtagCallback(T domainResource) {
        d = domainResource;
    }

    @Override
    public void handle(Request request, Response response) {
        String eTag = d.getClass().getSimpleName() + "-" + d.getId() + "-" + df.format(d.getLastModified());
        response.getEntity().setTag(new Tag(eTag, false));
    }
}

Where all my entities implement DomainResource which require them to have an ID and LastModified date.

But it does NOT work. I really expected this to work, it is very elegant !

The StrongEtagCallback is being called though, the ETAG set server-side on the entity. My Wireshark nor my GWT client sees a E-TAG header on the response of the response. Diving deeper now.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-30T11:37:53+00:00Added an answer on May 30, 2026 at 11:37 am

    In researching this issue myself, I noticed a parallel thread started by koma on the Restlet discussion board, in which an alternative and preferable solution was provided by Tim Peierls, namely to override Resource.toRepresentation().

    As koma pointed out in that thread, overriding ServerResource.handle() caused conditions matching to fail (I’m not sure why?), so that approach is problematic.

    Example override code provided by Tim Peierls:

    @Override public Representation toRepresentation(Object source, Variant target) {
        Representation rep = super.toRepresentation(source, target);
        if (source instanceof HasLastModified) {
            HasLastModified hlm = (HasLastModified) source;
            rep.setModificationDate(hlm.getLastModified());
        }
        if (source instanceof HasEtag) {
            HasEtag he = (HasEtag) source;
            rep.setTag(he.gettag());
        }
        return rep;
    }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

like in java I have: Class.getSuperClass().getDeclaredFields() how I can know and set private field
I know you can SET multiple css properties like so: $('#element').css({property: value, property: value});
I know listview can set scrollbar thumb in XML like this Android:scrollbarThumbVertical etc. But
I know you can set fastScroll for listViews, but currently I would like to
I know I can set a variable like that $xml->path->to->tag = $newValue . But
I know you can set different durations for different properties with CSS transitions. But
I know you can set max heap size at startup using -Xmx but is
I know you can not set a key value dynamically, but what about the
I know that you can set the print margin in Eclipse, but if I
I know that I can set expiration date for a cookie, but can I

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.