pivotal-jbarrett commented on PR #7211: URL: https://github.com/apache/geode/pull/7211#issuecomment-1154370976
@upthewaterspout, this brings up an excellent question. Does the use of the `Serializable` interface outside of the direct API, which does not utilize it, constitute part of the binary compatibility contract for a public class. Our API or internals do not transmit the classes in question as serializables but the test framework does. As a result of having the `Serializable` interface on the class are we stuck making sure that external use of this class maintains serialization compatibility? If the answer to this is yes, then it will likely put a damper on future mutation of types that either directly or indirectly, like `enum`, implement `Serializable`. There are many issues with versioning `Serializable` classes that may force us to consider `@Deprecated` annotations on these sorts of types and making new types to replace them anytime we want to mutate them. If the answer is no, then how should we communicate this to users? We could define a `@NotSerializable` annotation and Javadoc tag to hopefully inform the user not to use it in serialization. We could implement the write/readObject methods and throw exceptions to prevent it at runtime. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@geode.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org