River
  1. River
  2. RIVER-316

RFC Library, Application & Class Versioning, Dynamically Mobile Codebases and Classloading enhancements

    Details

    • Type: New Feature New Feature
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: net_jini_loader
    • Labels:
      None
    • Environment:

      All

      Description

      Request for Comments:

      Proposal to add support for Dynamic Mobile Codebases and Application fine grained class versioning as well as Coarse grained Library versioning , to enable River User devolopers, to provide distinction between classes with the same fully qualified class name when code differences created by refactoring packages or library updates break backward compatibility between classes contained within that library or package. ClassWorlds can be used to segregate ClassRealms for application packages and different library versions.

      A dependency tree array object (contains dependency references between classes, fully qualified class names are stored as String objects) returned by the new ClassDepend tool (replacement of classdep functionality) may be suitable (with some modification) for recording class versioning, for later navigation of the codebase for class version verification, perhaps this could be stored in serialized form with the codebase.

      The ASM library might be used to modify existing, externally sourced library class file bytecodes to add a LIBRARYVERSIONID static final field, with an accessor method, for library code used in codebases, to mark the class files with the library release version.

      serialVersionUID (when it exists), along with the CLASSVERSION static field, might be used to determine the dependency and backward compatibility of classes in a codebase, this information could be stored in the dependency tree along with the CLASSVERSION, fully qualified class name and class file checksum.

      1. Java Classloader issues relating to Jini smli_tr-2006-149.pdf
        359 kB
        Peter Firmstone
      2. classworlds-1.0-src.zip
        82 kB
        Peter Firmstone
      3. VersionedDynamicClassesRev6.tgz
        61 kB
        Peter Firmstone
      4. VersionedDynamicClassesRev7.tgz
        64 kB
        Peter Firmstone
      5. VersionedDynamicClassesRev8.tgz
        165 kB
        Peter Firmstone

        Issue Links

          Activity

          Peter Firmstone created issue -
          Peter Firmstone made changes -
          Field Original Value New Value
          Attachment Java Classloader issues relating to Jini smli_tr-2006-149.pdf [ 12413650 ]
          Peter Firmstone made changes -
          Summary RFC codebase versioning and Classloading enhancements for PreferredClassProvider RFC Library, Application & Class Versioning, Dynamically Mobile Codebases and Classloading enhancements
          Peter Firmstone made changes -
          Link This issue relates to RIVER-314 [ RIVER-314 ]
          Peter Firmstone made changes -
          Attachment VersionedDynamicClasses.zip [ 12414504 ]
          Attachment classworlds-1.0-src.zip [ 12414505 ]
          Peter Firmstone made changes -
          Description Request for Comments:

          Proposal to add support for http Codebase class versioning, to enable River User devolopers, to provide distinction between classes with the same fully qualified class name when code differences created by refactoring packages or library updates break backward compatibility between classes contained within that library or package.

          A dependency tree array object (contains dependency references between classes, fully qualified class names are stored as String objects) returned by the new ClassDepend tool (replacement of classdep functionality) may be suitable (with some modification) for recording class versioning, for later navigation of the codebase for class version verification, perhaps this could be stored in serialized form with the codebase.

          The ASM library might be used to modify existing, externally sourced library class file bytecodes to add a classVersionID immutable field, with an accessor method, for library code used in codebases, to mark the class files with the library release version.

          serialVersionUID (when it exists), along with the classVersionID, might be used to determine the dependency and backward compatibility of classes in a codebase, this information could be stored in the dependency tree along with the classVersionID and fully qualified class name.

          Request for Comments:

          Proposal to add support for Dynamic Mobile Codebases and Application fine grained class versioning as well as Coarse grained Library versioning , to enable River User devolopers, to provide distinction between classes with the same fully qualified class name when code differences created by refactoring packages or library updates break backward compatibility between classes contained within that library or package. ClassWorlds can be used to segregate ClassRealms for application packages and different library versions.

          A dependency tree array object (contains dependency references between classes, fully qualified class names are stored as String objects) returned by the new ClassDepend tool (replacement of classdep functionality) may be suitable (with some modification) for recording class versioning, for later navigation of the codebase for class version verification, perhaps this could be stored in serialized form with the codebase.

          The ASM library might be used to modify existing, externally sourced library class file bytecodes to add a LIBRARYVERSIONID static final field, with an accessor method, for library code used in codebases, to mark the class files with the library release version.

          serialVersionUID (when it exists), along with the CLASSVERSION static field, might be used to determine the dependency and backward compatibility of classes in a codebase, this information could be stored in the dependency tree along with the CLASSVERSION, fully qualified class name and class file checksum.

          Peter Firmstone made changes -
          Attachment VerionedDynamicClassesRev1.tgz [ 12414547 ]
          Peter Firmstone made changes -
          Attachment VersionedDynamicClassesRev2.tgz [ 12414694 ]
          Peter Firmstone made changes -
          Attachment VersionedDynamicClasses.zip [ 12414504 ]
          Peter Firmstone made changes -
          Attachment VerionedDynamicClassesRev1.tgz [ 12414547 ]
          Peter Firmstone made changes -
          Attachment VersionedDynamicClassesRev3.tgz [ 12414730 ]
          Peter Firmstone made changes -
          Attachment VersionedDynamicClassesRev4.tgz [ 12415074 ]
          Peter Firmstone made changes -
          Attachment VersionedDynamicClassesRev4.tgz [ 12415075 ]
          Peter Firmstone made changes -
          Attachment VersionedDynamicClassesRev5.tgz [ 12415262 ]
          Peter Firmstone made changes -
          Attachment VersionedDynamicClassesRev6.tgz [ 12416710 ]
          Peter Firmstone made changes -
          Attachment VersionedDynamicClassesRev2.tgz [ 12414694 ]
          Peter Firmstone made changes -
          Attachment VersionedDynamicClassesRev3.tgz [ 12414730 ]
          Peter Firmstone made changes -
          Attachment VersionedDynamicClassesRev4.tgz [ 12415075 ]
          Peter Firmstone made changes -
          Attachment VersionedDynamicClassesRev4.tgz [ 12415074 ]
          Peter Firmstone made changes -
          Attachment VersionedDynamicClassesRev5.tgz [ 12415262 ]
          Peter Firmstone made changes -
          Attachment VersionedDynamicClassesRev7.tgz [ 12417395 ]
          Peter Firmstone made changes -
          Attachment VersionedDynamicClassesRev8.tgz [ 12417606 ]
          Peter Firmstone made changes -
          Link This issue is part of RIVER-328 [ RIVER-328 ]

            People

            • Assignee:
              Unassigned
              Reporter:
              Peter Firmstone
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Due:
                Created:
                Updated:

                Development