Another option that might work out of the box would be to use the jax-rs @Consumes annotation e.g @Consumes({"application/vnd.aerogear.v101+json"}) on the service endpoints.So by making an abstract PushNotificationSenderEndpoint and and several PushNotificationSenderEndpointV101, PushNotificationSenderEndpointV102 with the right @Consumes annotation should work. I haven't tried it though