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 


Tried out this option as well, seems to work, but to use it one must set the Content-Type to “application/vnd.aerogear.v101+json” instead of the Accept header.