Checking serialization compatibility between versions of java classes
First Claim
1. A process for determining the compatibility of two or more versions of a single serialized class of objects residing on a data processing system comprising the steps of:
- inputting two or more versions of the class into a process environment of the data processing system;
dividing each version of the class into a serialized stream of elements originating from a component class of Java object-oriented programming language; and
comparing the stream of elements of one version of the class with the stream of elements of another version of the class to find incompatible differences between the versions by introspecting each version of said Java class and determining if it is possible to reconstruct an instance of a newer version of the Java class from a serialized older version.
1 Assignment
0 Petitions
Accused Products
Abstract
A process for determining the compatibility of two or more versions of a single serialized class of objects residing on a data processing system is disclosed. The process is completed in a series of steps. First, two or more versions of the class are inputted into a process environment of the data processing system. Following this, each version of the class is divided into a serialized stream of elements. Finally, the stream of elements of one version of the class are compared with the stream of elements of another version of the class to find incompatible differences between the versions.
-
Citations
27 Claims
-
1. A process for determining the compatibility of two or more versions of a single serialized class of objects residing on a data processing system comprising the steps of:
-
inputting two or more versions of the class into a process environment of the data processing system;
dividing each version of the class into a serialized stream of elements originating from a component class of Java object-oriented programming language; and
comparing the stream of elements of one version of the class with the stream of elements of another version of the class to find incompatible differences between the versions by introspecting each version of said Java class and determining if it is possible to reconstruct an instance of a newer version of the Java class from a serialized older version. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
deletion of fields in a class;
rearrangement of classes in the hierarchy;
modification of a nonstatic field into a static field;
modification of a transient field into a nontransient field;
modification of a declared type of a primitive field;
modification of a class from serializable to externalizable; and
modification of a class from externalizable to serializable.
-
-
6. The process of determining compatibility of claim 1, wherein said comparing step is implemented utilizing a group of classes within two products to ensure product a compatibility.
-
7. The process of determining compatibility of claim 1, wherein said comparing step is implemented from another program by calling its static method command for class compatibility.
-
8. The process of determining compatibility of claim 1, wherein said comparing step is implemented utilizing a command line java tool which is invoked utilizing a java command function.
-
9. The process of determining compatibility of claim 1, wherein said comparing step is utilized to ensure backward compatibility.
-
10. A system for determining the compatibility of two or more versions of a single serialized class of objects residing on a data processing system comprising means for:
-
inputting two or more versions of the class into a process environment of the data processing system;
dividing each version of the class into a serialized stream of elements originating from a component class of Java object-oriented programming language; and
comparing the stream of elements of one version of the class with the stream of elements of another version of the class to find incompatible differences between the versions by introspecting each version of said Java class and determining if it is possible to reconstruct an instance of a newer version of the Java class from a serialized older version. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
deletion of fields in a class;
rearrangement of classes in the hierarchy;
modification of a nonstatic field into a static field;
modification of a transient field into a nontransient field;
modification of a declared type of a primitive field;
modification of a class from serializable to externalizable; and
modification of a class from externalizable to serializable.
-
-
15. The system for determining compatibility of claim 10, comprising further of means for comparing is a group of classes within two products to ensure product compatibility.
-
16. The system for determining compatibility of claim 10, wherein said means for comparing is implemented from another program by calling its static method command for class compatibility.
-
17. The system for determining compatibility of claim 10, wherein said means for comparing is implemented utilizing a command line java tool which is invoked utilizing a java command function.
-
18. The system for determining compatibility of claim 10, further comprising of means for ensuring backward compatibility.
-
19. A computer program product comprising of:
-
a storage medium; and
program instructions stored on said storage medium for determining the compatibility of two or more versions of a single serialized class of objects residing on a data processing system comprising (1) inputting two or more versions of the class into a process environment of the data processing system, (2) dividing each version of the class into a serialized stream of elements originating from a component class of Java object-oriented programming language, and (3) comparing the stream of elements of one version of the class with the stream of elements of another version of the class to find incompatible differences between the versions by introspecting each version of said Java class and determining if it is possible to reconstruct an instance of a newer version of the Java class from a serialized older version. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
deletion of fields in a class;
rearrangement of classes in the hierarchy;
modification of a nonstatic field into a static field;
modification of a transient field into a nontransient field;
modification of a declared type of a primitive field;
modification of a class from serializable to externalizable; and
modification of a class from externalizable to serializable.
-
-
24. The computer program product of claim 19, comprising further of program instructions wherein said comparing step is implemented utilizing a group of classes within two products to ensure product compatibility.
-
25. The computer program product of claim 19, comprising further of program instructions wherein said comparing step is implemented from another program by calling its static method command for class compatibility.
-
26. The computer program product of claim 19, comprising further of program instructions wherein said comparing step is implemented utilizing a command line java tool which is invoked utilizing a java command function.
-
27. The computer program product of claim 19, comprising further of program instructions wherein said comparing step is utilized to ensure backward compatibility.
Specification