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