Geronimo
  1. Geronimo
  2. GERONIMO-6209

Support for class hot swap for OSGi applications

    Details

    • Type: New Feature New Feature
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 3.0.0
    • Fix Version/s: 3.0.0, 3.0-beta-2
    • Component/s: Aries
    • Security Level: public (Regular issues)
    • Labels:
      None

      Description

      Provide ability to perform class hot swap for bundles in OSGi applications. The hot swapped classes / changes made should be persisted so they are not lost when the application or the server is restarted.
      This feature will also require supporting changes in the Eclipse plug-in to take advantage of the new functionality.

        Issue Links

          Activity

          Hide
          Jarek Gawor added a comment -

          I committed the initial code in revision 1195653.

          The value returned by TransformerAgent.isRedefineClassesSupported() indicates whether or not class swap is supported. That usually just queries the JVM (Instrumentation.isRedefineClassesSupported()) to see if class redefinition is supported. Since most JVMs do support it and I could not find an easy way to disable class redefinition support I added a "org.apache.geronimo.transformer.redefineClasses" system property that can be used to disable it. That is, the TransformerAgent.isRedefineClassesSupported() will return false even though Instrumentation.isRedefineClassesSupported() can return true.

          Show
          Jarek Gawor added a comment - I committed the initial code in revision 1195653. The value returned by TransformerAgent.isRedefineClassesSupported() indicates whether or not class swap is supported. That usually just queries the JVM (Instrumentation.isRedefineClassesSupported()) to see if class redefinition is supported. Since most JVMs do support it and I could not find an easy way to disable class redefinition support I added a "org.apache.geronimo.transformer.redefineClasses" system property that can be used to disable it. That is, the TransformerAgent.isRedefineClassesSupported() will return false even though Instrumentation.isRedefineClassesSupported() can return true.
          Hide
          Jarek Gawor added a comment -

          Committed additional fixes (revisions 1237959 and 1237961) for class hot swap when multiple Bundle-ClassPath header contains multiple entries.

          Show
          Jarek Gawor added a comment - Committed additional fixes (revisions 1237959 and 1237961) for class hot swap when multiple Bundle-ClassPath header contains multiple entries.

            People

            • Assignee:
              Jarek Gawor
              Reporter:
              Jarek Gawor
            • Votes:
              1 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development