Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

In older versions of Apache Geode, the bundled Spring Framework version was on v4.3.x. Which meant that any user that wanted to use Spring in their custom code would be restricted to using that version. Manually upgrading the a Spring Framework version higher, like v5.x, could result in version conflicts in either the custom deployed code, Apache Geode or in both. In all cases this is behavior that is unwarranted.

...

In order to have Apache Geode bootstrap correctly, Apache Geode's current bootstrapping cycle needs to be altered to accommodate for this modular loading system. The new bootstrapping mechanism will bootstrap Apache Geode components using a ModularServiceModuleServicewhich will load the Apache Geode system into its own ClassLoader. Determining what strategy is used, will be determined by the implementation of the ModuleService. Initially the JBossModuleService will be opt-in only. This way users can migrate their implementation to match the requirements of the new ModuleService.

...

  • Using the current class loading mechanism
  • Using the new JBoss module loading system to achieve class loading isolationachieve ClassLoader isolation

The determination of the bootstrapping type will be done in GFSH using an "--experimentalClassloaderexperimental-classloader" flag. This flag will instruct GFSH to either use the current class loading mechanism or use the class loading isolated ServerLauncher.

...

The deploy jar function initiated by running `deploy jar` from gfsh will trigger the ManagementService to register the module with the ModuleService using the uploaded JAR-file. This is done by the jar file being placed in a known location on disk.  Then, then the ManagementService will  will request the BootstrappingService to load the component,  a CustomDeployedJar component type. The  to load a component of type CustomDeployedJar. The BootstrappingService will determine the location of the jar file and request from the ModuleService that the module is loaded using the jar file location.

...

Deploying of jars might have a small change in behavior. The initial implementation might require the user to deploy a fully build built jar, not part-jars where the sum of the jars make up a whole. Upgrading of libraries will result in the old jar being undeployed and the new one deployed in its place.

...