Currently we have three identifiers for a DeploymentModule: path, moduleId, and modulePackageName.
module.path is the physical location of the module file on disk. We need this for scanning and finding descriptors.
module.modulePackageName is the path to the module as the application knows it. We may have moved things around so it might be different.
module.moduleId is the spec defined <module-name> string or the vendor-specific override for that string.
ModulePackageName is really just used for resolving internal links which is all ultimately URI based, so modulePackageName has been changed to from String to URI and the link code improved to just use URIs rather than creating them temporarily. The new field name is moduleUri
Module.Path is now represented internally as a File rather than String.
Module.moduleId has been left the same, however the rules for defaulting its value have been significantly improved.
The setting of each of these fields has been consolidated to one class and is now consistent across all the module types. Changes to that logic now affect all module types. It is also far easier to read – the previous "if" blocks were terrible. A clean-up was long overdue.