Hello Vlatko,

when I declare the following routes (using the current snapshot of 
Restlet 2.0), I can get the subscriptions, publishers and channel 
correctly. That is to say:
 - "http://localhost:8182/rms/channels/blah/blah/subscriptions"; hits the 
"subscriptions" resource
 - "http://localhost:8182/rms/channels/blah/blah/publishers"; hits the 
"publishers" resource
 - "http://localhost:8182/rms/channels/blah/blah/publishers/"; hits the 
"channel" resource

// Attach subscriptions resource.
TemplateRoute subscriptionsRoute = 
router.attach("/rms/channels/{topicPath}/subscriptions", new Restlet() {
    @Override
    public void handle(Request request, Response response) {
        response.setEntity("subscriptions", MediaType.TEXT_PLAIN);
    }
});
subscriptionsRoute.getTemplate().setMatchingMode(Template.MODE_EQUALS);
Map<String, Variable> subscriptionsRouteVariables = 
subscriptionsRoute.getTemplate().getVariables();
subscriptionsRouteVariables.put("topicPath", new 
Variable(Variable.TYPE_ALL));

// Attach publishers resource.
TemplateRoute publishersRoute = 
router.attach("/rms/channels/{topicPath}/publishers", new Restlet() {
    @Override
    public void handle(Request request, Response response) {
        response.setEntity("publishers", MediaType.TEXT_PLAIN);
    }
});
publishersRoute.getTemplate().setMatchingMode(Template.MODE_EQUALS);
Map<String, Variable> publishersRouteVariables = 
publishersRoute.getTemplate().getVariables();
publishersRouteVariables.put("topicPath", new Variable(Variable.TYPE_ALL));

// Add channel route
TemplateRoute channelRoute = router.attach("/rms/channels/{topic}", new 
Restlet() {
    @Override
    public void handle(Request request, Response response) {
        response.setEntity("channel", MediaType.TEXT_PLAIN);
    }
});
channelRoute.getTemplate().setMatchingMode(Template.MODE_EQUALS);
Map<String, Variable> channelRouteVariables = 
channelRoute.getTemplate().getVariables();
channelRouteVariables.put("topic", new Variable(Variable.TYPE_ALL));


Does this help you?

Best regards,
Thierry Boileau

> Hi Thierry!
>
> I tried as you suggested:
> // Attach subscriptions resource.
> Route subscriptionsRoute = 
> router.attach("/rms/channels/{topicPath}/subscriptions", 
> SubscriptionsResource.class);
>         
> subscriptionsRoute.getTemplate().setMatchingMode(Template.MODE_EQUALS);
> Map<String, Variable> subscriptionsRouteVariables = 
> subscriptionsRoute.getTemplate().getVariables();
> subscriptionsRouteVariables.put("topicPath", new Variable(Variable.TYPE_ALL));
>         
> // Attach publishers resource.
> Route publishersRoute = router.attach("/rms/channels/{topicPath}/publishers", 
> PublishersResource.class);
>         
> publishersRoute.getTemplate().setMatchingMode(Template.MODE_STARTS_WITH);
> Map<String, Variable> publishersRouteVariables = 
> publishersRoute.getTemplate().getVariables();
> publishersRouteVariables.put("topicPath", new Variable(Variable.TYPE_ALL));
>
> But still does not work. I get the same problem. No idea why. I could try to 
> add one more route then containing "subscriptions/". Then I guess it should 
> work, but it will be more like a hack...
>
>

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2425834

Reply via email to