Dear James,

Thank you for your answer. For your question: I am using latest version of Abdera 1 (1.1.2)...

Here how looks my TargetBuilder configuration:
// The target builder is used to construct url's for the various targets
        setTargetBuilder(
                new TemplateTargetBuilder()
                .setTemplate(TargetType.TYPE_SERVICE, "{target_base}/")
.setTemplate(TargetType.TYPE_COLLECTION, "{target_base}/{collection}{-opt|?|"+PARAM_LIST+"}{-join|&|"+PARAM_LIST+"}") .setTemplate("feed", "{target_base}/{collection}{-opt|?|"+PARAM_LIST+"}{-join|&|"+PARAM_LIST+"}") .setTemplate(TargetType.TYPE_CATEGORIES, "{target_base}/{collection};categories") .setTemplate(TargetType.TYPE_ENTRY, "{target_base}/{collection}({entry})") .setTemplate(TYPE_ENTRY_LINKS, "{target_base}/{collection}({entry})/$links/{navigation}") .setTemplate(OpenSearchTargetTypes.OPENSEARCH_DESCRIPTION, "{target_base}/opensearch.xml") .setTemplate(OpenSearchTargetTypes.OPENSEARCH_URL, "{target_base}/{collection}{-opt|?|"+PARAM_LIST+"}{-join|&|"+PARAM_LIST+"}")
                );
Note the template associated with key "feed" ! Nothing works without that!

I am experimenting with OData.org . Trying to make a basic support, here is my Resolver configuration:
        setTargetResolver(
                new RegexTargetResolver()
                .setPattern('/'+base+"/?", TargetType.TYPE_SERVICE)
.setPattern('/'+base+"/opensearch\\.xml(#.*)?", OpenSearchTargetTypes.OPENSEARCH_DESCRIPTION) .setPattern('/'+base+"/?\\?[^#]*(#.*)?", OpenSearchTargetTypes.OPENSEARCH_URL) .setPattern('/'+base+"/([^/#?;()]+);categories(#.*)?", TargetType.TYPE_CATEGORIES, BasicProvider.PARAM_FEED) .setPattern('/'+base+"/([^/#?;()]+)(\\?[^#]*)(#.*)?", OpenSearchTargetTypes.OPENSEARCH_URL, BasicProvider.PARAM_FEED) .setPattern('/'+base+"/([^/#?;()]+)(#.*)?", TargetType.TYPE_COLLECTION, BasicProvider.PARAM_FEED) .setPattern('/'+base+"/([^/#?;()]+)\\(([^/#?()]+)\\)(#.*)?", TargetType.TYPE_ENTRY, BasicProvider.PARAM_FEED, BasicProvider.PARAM_ENTRY) .setPattern('/'+base+"/([^/#?;()]+)/([^/#?()]+)(#.*)?", TargetType.TYPE_ENTRY, BasicProvider.PARAM_FEED, BasicProvider.PARAM_ENTRY) .setPattern('/'+base+"/([^/#?;()]+)\\(([^/#?)]+)\\)/\\$links/([^/#\\?\\)]+)(\\?[^#]*)?(#.*)?", TYPE_ENTRY_LINKS, BasicProvider.PARAM_FEED, BasicProvider.PARAM_ENTRY,"navigation")
                );
Here also, I changed "collection" by BasicProvider.PARAM_FEED and "entry" by BasicProvider.PARAM_ENTRY...
* base is something like "records.svc"...
* $links is an interesting concept: still to be implemented!
* site http://www.regexplanet.com/simple/index.html is essential to test those patterns !

Please advise me about taking immediately (or not) the Abdera 2 train...
(I need to deliver rapidly something good for the long term!)

Have a nice day!

Christophe

Le 1/03/2012 17:26, James M Snell a écrit :
Is this is Abdera 1.x or the refactored stuff in abdera2-server?

On Wed, Feb 29, 2012 at 2:59 AM, Christophe Dupriez
<[email protected]>  wrote:
Hi!

I just lost a few hours on this:

In AbstractCollectionAdapter, you have:

    public String getHref(RequestContext request) {
        return request.urlFor("feed", hrefParams);
    }

In most Abdera code and examples, you have setTargetBuilder(new
TemplateBuilder() ... .setTemplate(TargetType.TYPE_COLLECTION) ... )
TargetType.TYPE_COLLECTION is not at all "feed" !!!

Any explanation? A committer would open a JIRA issue on this?

Thanks!

Christophe


Reply via email to