I have developed the functionality to serialize the complete context hierarchy. We have clearly identified the non-serializable instance variables in Context classes and named them as transient (these include descriptions). When somebody serialize the current configurationContext, the whole context hierarchy will be serialized including message contexts (so the issue of MessageContext serialization becomes a subset of this solution ). The names of descriptions will be saved in special variables, these names will also get serialized.
In deserializing the caller simply have to deserialize an ConfigurationContext object from the file. This will have the complete context hierarchy. New instances of some transient variables will be set in the readObject function (e.g. ThreadPools ). But the description hierarchy cannot be attached at this moment since the axisConfiguraion is unavalable. To set the descriptors the init (axisConfiguration) method of the deserialized configurationContext have to be called passing the current AxisConfiguration object as the parameter this will recursively set the descriptors of all the context classes upto MessageContext.
I also added a test case to test the serialization and deserialization functionality. This is available as core\test\org\apache\axis2\context\ContextSerializationTest.java.
So I belive this issue can be closed now