We have been using Spring Remoting in our project for sometime. It is used with some other systems to access our web-services. We are currently evolving in terms of what parameters web service takes; but at the same time we are trying to be independent of our consumers.
So, currently my question is around how serialization and deserialization works in spring remoting. Here are the details:
I have a web-service exposed through spring remoting which has following parameters in a class
- name
- age
- address
Currently all consumers use the respective stubs and serialization and deserialization happens accordingly.
As I mentioned we evolved our web service and class respectively to contain following fields now"
- name
- age
- address
- country
- dateOfBirth
However consumers still have old stubs or rather stub-jar to access the web service. We did a spike and it seems that irrespective of newly added fields at our ends the remoting service continues to work fine. I was expecting it to bomb at consumers' end since the number of fields have been added. "PLEASE NOTE NO FIELDS HAVE BEEN DELETED/REMOVED FROM CLASS". Only additions have been made.
Does spring remoting handles additional fields gracefully or I should expect it to crib?
Let me know if my question is not clear at any point. The ultimate question that I am trying to put forward is, should I be expecting my program to bomb? And it's not failing currently as I am not testing something correctly? How does spring remoting serialize and deserialize the objects that are being exchanged?